Сопоставьте ссылку «один ко многим» в Entity Framework как коллекцию идентификаторов вместо реальной ссылки на сущность - PullRequest
1 голос
/ 08 марта 2012

В Fluent Nhibernate я могу отобразить ссылки на несколько объектов 1-M в виде списка идентификаторов:

    public class User{
     List<int> LicensesIds{
      get;
      set;
    }

Вместо

Public class User{
 ICollectoin<License> Licenses{
  get;
  set;
 }
}

Вот как Entity Framework отображает это. В быстром отображении, когда я запрашиваю БД, я получаю список идентификаторов вместо списка сущностей.

Есть ли где-нибудь, я могу сопоставить это так же в Entity Framework?

Причина, по которой мне это нужно, заключается в том, что я использую шаблон Repository и создал репозиторий для каждой сущности в домене: Repository, и я не хочу определять, какие отношения запрашивать и получать с сущностью при запросе к DB используя LINQ или ленивую привязку в середине вызова свойства, при этом я не знал, что этот вызов свойства теперь будет собирать данные из БД. Я хочу вывести сущности вручную, запросив соответствующий репозиторий.

Thx,

Джеймс

1 Ответ

1 голос
/ 08 марта 2012

Это невозможно.У вас всегда должен быть список лицензий в вашей сущности, если вы хотите, чтобы EF обрабатывал загрузку для вас (вы можете затем выставить второе свойство, просто проецируя на список целых чисел).Если вы хотите просто список int, внедрите в свой репозиторий собственную логику, которая выполнит дополнительный запрос и заполнит его.

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