Могу ли я выполнить явную загрузку с помощью сущностей самоконтроля Entity Framework? - PullRequest
1 голос
/ 17 августа 2010

Я хочу вернуть график для сущности "Бизнес".У сущности Buiness есть коллекция «Контакты».

Так что я в основном хочу это:

ctx.Business.Include("Contacts").Where(b => b.BusinessID == id).Single();

Проблема в том, что я не хочу ВСЕ контакты для бизнеса.Только те, которые имеют ContactTypeID = x.Как я могу сделать это?Я подумал, что мне может понадобиться разбить запрос на 2 шага.1, чтобы получить бизнес, и 2, чтобы захватить контакты, а затем как-то прикрепить их к бизнесу.

Но я использую шаблон STE t4 и не могу понять, как это сделать, используя это.

Буду очень признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Один из способов сделать это:

var biz = from b in ctx.Business where b.BusinessID == id
select new 
{
   Business = b,
   Contacts = b.Contacts.Where(c => c.ContactTypeID == x)
}.ToList();
0 голосов
/ 17 августа 2010

Я думаю, что нашел, как это сделать:

var biz = ctx.Business.Where(b => b.BusinessID == id).Single(); 
var contacts = ctx.Contacts.Where(c => c.BusinessID==id && c.ContactTypeID==6);
foreach (var contact in contacts)
{
   biz.Contacts.Add(contact);
}

Я был обеспокоен добавлением контактов таким образом, что они будут рассматриваться как "новые" элементы, но отслеживание изменений отключено, поэтому они рассматриваются как неизмененные,Я думаю, что отслеживание изменений включается только после их десериализации.

...