Linq to EF, я использую asp.net 4, EF 4 и C #.
Вот два способа, которыми я придумала запросить мои данные.Способы А и С работают нормально.B, однако, необходимо реализовать и дополнительный оператор WHERE (как "где c.ModeContent ==" NA ").
Мой вопрос:
- Относительно этого вида объединения (внешнего соединения, Я полагаю) каков наилучший подход с точки зрения производительности?
- Не могли бы вы показать мне некоторый код для реализации дополнительного оператора WHERE в B?
- Любой способ улучшить этот код?
Спасибо за ваше время!: -)
// A
var queryContents = from c in context.CmsContents
where c.ModeContent == "NA" &&
!(from o in context.CmsContentsAssignedToes select o.ContentId)
.Contains(c.ContentId)
select c;
// B - I need to implent where c.ModeContent == "NA"
var result01 = from c in context.CmsContents
join d in context.CmsContentsAssignedToes on c.ContentId equals d.ContentId into g
where !g.Any()
select c;
// C
var result02 = context.CmsContents.Where(x => x.ModeContent == "NA").Where(item1 => context.CmsContentsAssignedToes.All(item2 => item1.ContentId != item2.ContentId));