2013-08-19 2 views
2

У меня есть сценарий, где у меня две или более модели, которые будут использовать одну и ту же таблицу. Скажем RecordCareerWorkshop и RecordRecruitment. Я делаю это, потому что у них может быть другое требование проверки, отображаемое имя, сообщение об ошибке проверки и т. Д.Две модели разделяют одну и ту же таблицу?

Я создаю две модели и помещаю [Таблица («запись»)] поверх класса.

Например:

[Table("records")] 
public class RecordCareerWorkshop 

и

[Table("records")] 
public class RecordRecruitment 

Однако, когда я запускаю веб-страницу, я получаю сообщение об ошибке в следующем:

Типы сущностей 'RecordCareerWorkshop' и «RecordRecruitment» не могут использовать таблицу «Запись», поскольку они не находятся в иерархии того же типа или не имеют действительной связи одного-одного внешнего ключа с , соответствующей первичным ключам между ними.

Могу ли я узнать, как использовать две модели, разделяющие одну и ту же таблицу?

Отредактировано:

Если я вывел обе модели из базового класса для таблицы записей, например:

public class Record 

и

public class RecordCareerWorkShop : Record 

и

public class RecordRecruitment : Record 

я получаю сообщение об ошибке:

Неизвестный столбец 'Extent1.Discriminator' в 'списке поля'

всякий раз, когда я выполнить любой код, например:

var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList(); 

Действительно не знаю, где Extent1, Discriminator всплывает.

+0

Это больше походит на ОРМ чем сам MVC ...но я могу полностью понять, почему ORM может быть смущен вашим намерением там –

ответ

1

Вы можете пойти либо один из двух маршрутов здесь:

  • Dérivé обе модели из того же базового класса.
  • Включите только одну сущность, а затем создайте две ViewModels, которые будут переданы из основного объекта.

В случае связаны обе структуры, вероятно, вы должны пойти на вариант 1. Если они просто разные представления одного и того же базового понятия, вы должны пойти на вариант 2.

+0

HI Kenneth, не возражаете ли вы привести пример (1)? Пожалуйста, проверьте мой отредактированный вопрос. – neobie