LiNQ to Entities,包括更少

时间:2010-03-08 13:53:40

标签: entity-framework linq-to-entities

如果要为ClassA制作LinQ to entity表达式,其中A与ClassB有如下关系:

var temp = from p in myEntities.ClassA.Include("ClassB")
           where ...
           select p;

您将获得一组ClassA:s,其中包含对ClassB的引用。在我的情况下,我真的不需要加载所有ClassB引用,只是其中一些。但我不想循环遍历ClassA:s并单独加载它们,我希望我的数据库操作更少,更大,而不是在这里和那里读取小块。

是否可以对包含哪些引用进行某种限制,或者你必须接受这种全有或全无的风格?

2 个答案:

答案 0 :(得分:1)

是的,您应该project而不是Include

var from p in myEntities.ClassA
    where ...
    select new 
    {
        ClassA = p,
        ClassBs = from q in p.ClassB
                  where (something)
                  select q
    };

这只加载指定的ClassB。

答案 1 :(得分:0)

您可以这样做:

var temp = from p in myEntities.ClassA
           select new { ClassA = p, 
                        ClassB = p.ClassB.Where(b => b.SomeProp == somevalue) };