1

可能重复:
Entity Framework Include() 强类型

好的,我有一个实体框架查询,我使用 Include 告诉它我想要加载一个相关的对象:

var employees = _entities.Employees.Include("Manager").ToList()

通过使用包含,我避免为每个员工的经理记录生成查询(取而代之的是在查询中使用友好的 JOIN,并且数据库再也不会受到打扰)。

但是魔术字符串“Manager”的使用令人不安,尤其是在来自据称更原始、快速和肮脏的 Linq2SQL 之后。从编码的角度来看,它就像一把上膛的枪,准备抛出一个应该在编译时捕获的运行时异常。它还极大地阻碍了重构。

是否有任何内置的属性或方法来解决这个问题?例如,我将Manager.EntityKeyPropertyName其视为静态字符串属性,但这似乎不是我想要的。我宁愿不在某处手动添加硬编码的常量列表,但它会比裸智能盲魔术字符串更好。

4

1 回答 1

2

不,EF 4 中没有任何内置的强类型版本 Include(我认为它在 EF Features CTP4和 CTP5 中)。我正在使用,我对此非常满意。

于 2011-01-19T13:18:05.210 回答