Entity Framework 4: Можете ли вы продублировать сущность и изменить ее в зависимости от условия фильтра - PullRequest
0 голосов
/ 05 ноября 2010

Есть ли в конструкторе структуры сущностей способ дублировать сущность, а затем применить условие фильтрации к обоим, чтобы сделать их уникальными. Я хотел бы сохранить все свойства навигации, а что нет.

Например, скажем, в базе данных у меня была таблица заказов. Я мог бы иметь две сущности, одну с именем IncompleteOrders и одну с именем Complete, основанную на одной и той же таблице, с завершением, имеющим фильтр, указанный в поле базы данных «complete».

Заранее спасибо

1 Ответ

0 голосов
/ 05 ноября 2010

Да, это называется Таблица за иерархию

У вас есть одна физическая таблица, в которой есть специальный одиночный скалярный столбец, который используется как дискриминатор .

Как это:

OrderId OrderName IsComplete
1       Foo       1
2       Bar       1
3       FooBar    0

Где IsComplete - дискриминатор (например, столбец BIT), поэтому при настройке своих сущностей на EDMX вы создаете три сущности:

1. Orders
2. CompleteOrders (derives from Orders)
3. InCompleteOrders (derives from Orders)

В таблице сопоставления для заказов вы говорите: «Сопоставление с CompleteOrders, когда IsComplete = 1», и «Сопоставление с InCompleteOrders, когда OrderType = 0».

Хорошая рецензия на шаблон TPH / Discriminator здесь .

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