Entity Framework Table на иерархическое наследование - PullRequest
6 голосов
/ 01 сентября 2011

Я пытаюсь реализовать наследование таблиц в иерархии с некоторыми из моих таблиц базы данных, например, Address. Я хочу извлечь 3 класса из Address, это EmployeeAddress, CustomerAddress, SupplierAddress.

+-------------------+------------------------+
| Address           |> EmployeeAddress       |
+-------------------+------------------------+
| ID                | ..                     |
| OwnerID           | EmployeeID             |
| OwnerCategory     | (condition: where = 0) |
| Street_1          | ..                     |
| Street_2          | ..                     |
| City              | ..                     |
| Province          | ..                     | 
| PostalCode        | ..                     |
+-------------------+------------------------+
                    |> CustomerAddress       |
                    +------------------------+
                    | ..                     |
                    | EmployeeID             |
                    | (condition: where = 1) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+
                    |> SupplierAddress       |
                    +------------------------+
                    |  ..                    |
                    | EmployeeID             |
                    | (condition: where = 2) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+

Проблема в том, что я продолжаю получать ошибки ...

Когда Address является бетоном и содержит свойство OwnerCategory:

Ошибка 3032: проблема в отображении фрагментов, начинающихся со строки 178: член условия "address.OwnerCategory" с условием other затем отображается IsNull = False. Либо снять условие на address.OwnerCategory или удалите его из сопоставления.

Когда Address равен abstract и содержит свойство OwnerCategory:

Проблема при отображении фрагментов, начиная со строки 178: элемент условия «address.OwnerCategory» с условием, отличным от «IsNull = False» сопоставлен. Либо удалите условие по адресам. удалите его из сопоставления.

Когда Address равен бетону , а не содержит свойство OwnerCategory:

«DtcInvoicer.Database.Address» не содержит определения для «OwnerCategory» и нет метода расширения «OwnerCategory», принимающего первый аргумент типа 'DtcInvoicer.Database.Address' может быть найден (вам не хватает директивы using или ссылки на сборку?)

и

Проблема при отображении фрагментов, начинающихся со строк 177, 195: EntityTypes Model.Address, Model.EmployeeAddress отображаются в те же строки в табличных адресах. Условия картирования могут использоваться для различения строки, в которые отображаются эти типы.

(У меня уже установлено условие (когда OwnerCategory = 0)

Когда Address равен abstract , а не содержит свойство OwnerCategory:

«DtcInvoicer.Database.Address» не содержит определения для «OwnerCategory» и нет метода расширения «OwnerCategory», принимающего первый аргумент типа 'DtcInvoicer.Database.Address' может быть найден (вам не хватает директивы using или ссылки на сборку?)

Любая помощь приветствуется, спасибо заранее.

1 Ответ

8 голосов
/ 01 сентября 2011

Поскольку вы используете OwnerCategory в условии для наследования, оно не может быть сопоставлено со свойством.Выглядит так, как будто вы также должны установить Address на абстрактное значение.Убедитесь, что вы удалили свойство из вашей модели и изменили любой код, который его использовал.Указанные вами ошибки отображения не являются стандартной ошибкой, когда компилятор не может найти определенный элемент, поэтому обязательно исправьте эти места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...