相关疑难解决方法(0)

EF Code First - Include(x => x.Properties.Entity)a 1:许多关联

给定EF-Code First CTP5实体布局,如:

public class Person { ... }
Run Code Online (Sandbox Code Playgroud)

它有一个集合:

public class Address { ... }

它有一个单一的关联:

public class Mailbox { ... }

我想要做:

PersonQuery.Include(x => x.Addresses).Include("Addresses.Mailbox")

没有使用魔法字符串.我想用lambda表达式来做.

我知道我上面输入的内容将编译并将所有匹配搜索条件的人员带回他们的地址和每个地址的邮箱急切加载,但它是一个令我恼火的字符串.

如果没有字符串我该怎么办?

谢谢堆栈!

ef-code-first c#-4.0 entity-framework-ctp5

39
推荐指数
3
解决办法
3万
查看次数

EF CTP5 - 强类型的预先加载 - 如何包含嵌套的导航属性?

试图将我们的EF4解决方案转换为EF CTP5,并遇到了问题.

这是模型的相关部分:

在此输入图像描述

相关关系: - 一个县有许多城市 - 一个城市只有一个州

现在,我想执行以下查询: - 获取系统中的所有县,并包括所有城市,以及这些城市的所有州.

在EF4中,我会这样做:

var query = ctx.Counties.Include("Cities.State");
Run Code Online (Sandbox Code Playgroud)

在EF CTP5中,我们有一个强类型的包含,它需要一个Expression<Func<TModel,TProperty>>.

我可以让县的所有城市都没有问题:

var query = ctx.Counties.Include(x => x.Cities);
Run Code Online (Sandbox Code Playgroud)

但我如何才能获得这些城市的州?

我使用纯POCO,所以County.Cities是ICollection<City>,所以我不能这样做:

var query = ctx.Counties.Include(x => x.Cities.State)
Run Code Online (Sandbox Code Playgroud)

因为ICollection<City>没有一个叫做的属性State.

这几乎就像我需要使用嵌套的IQueryable.

有任何想法吗?我是否需要回退到这个场景中包含的魔术字符串?

entity-framework poco eager-loading entity-framework-ctp5

29
推荐指数
1
解决办法
8474
查看次数

有条件的急切加载?

我想有条件地加载一个实体和它的孩子(我只想在child.IsActive == true时急切地加载孩子).我该如何执行以下操作?

var parent = 
    from p in db.tblParents.Include("tblChildren") <-- where tblChildren.IsActive == true
    where p.PrimaryKey == 1
    select p;
Run Code Online (Sandbox Code Playgroud)

注意:我不想返回匿名类型.

谢谢.

entity-framework entity-framework-4

11
推荐指数
1
解决办法
3092
查看次数