linq - EF4 LINQ Include(string) 替代硬编码字符串?

标签 linq string entity-framework include entity-framework-4

有没有什么替代方法:

Organizations.Include("Assets").Where(o => o.Id == id).Single()

我想看到类似的东西:
Organizations.Include(o => o.Assets).Where(o => o.Id == id).Single()

以避免硬编码字符串“ Assets ”。

最佳答案

在 EF 4.1 中,有一个 built-in extension method为了这。

您必须在项目中引用“EntityFramework”程序集(EF 4.1 所在的位置)并使用 System.Data.Entity。

using System.Data.Entity; 

如果你想包含嵌套实体,你可以这样做:
        db.Customers.Include(c => c.Orders.Select(o => o.LineItems))

不确定这是否适用于 EF4.0 实体(基于 ObjectContext)。

关于linq - EF4 LINQ Include(string) 替代硬编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2586351/

相关文章:

c# - 线程和 IEnumerable; "Collection Was Modified"- 异常

c# - 使用 LinQ 从列表中获取不同的列表对象

c# - List<T> 连接 'X' 个列表数量

c# - 字符串 s[s.Length-1] 与 s.Last()

ruby - 从字符串中获取第一行(不处理整个字符串)

c# - 如何尝试将对象转换为 double,如果失败则将其作为字符串?

.net - 一对一的可选关系,两端可选且两个 FK

c# - 处理 'Sequence has no elements' 异常

c# - 如何使用 LINQ Contains() 查找枚举列表?

c# - 包括过滤器子集合