Entity Framework 4.1: особые отношения - PullRequest
1 голос
/ 05 декабря 2011

В моей базе данных есть таблица (AccessControl) , которая описывает своего рода «список контроля доступа» для информации, содержащейся в таблице Клиенты и другие таблицы.

Пример: ЗАКАЗЧИК объекта отмечен EntityId # 1.Если пользователь принадлежит к отделу № 6, он может получить доступ к записям клиентов № 16 и № 31, но он не может получить доступ к № 14, который может просматривать пользователь в отделе № 3:

Table ACCESSCONTROL:

    EntityId    PrimaryKey  DepartmentId
    1       16      6
    1       31      6
    1       14      3

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

Public Class Customer
   Public Property Id As Integer
   .......
   Public Overridable Property Acl As ICollection(Of AccessControl)
End Class

Public Class AccessControl
   Public Property EntityId As Integer
   Public Property PrimaryKey As Integer
   Public Property DepartmentId As Integer
End Class

Как я могу описать это отношение в определении DbContext, используя свободный подход Code First?Заранее спасибо.

1 Ответ

1 голос
/ 06 декабря 2011

Если я правильно понимаю вашу проблему, невозможно установить это отношение в EF. Есть много причин, по которым это не будет работать, но основа такова: если вы не можете установить это отношение в БД, вы не можете установить его и в EF. Ваше отношение управляется данными, а EF имеет очень ограниченную поддержку для сопоставления, управляемого данными, например, наследование TPH, которое не будет работать в вашем сценарии.

...