好的,我有一个实体框架查询,我使用 Include 告诉它我想要加载一个相关的对象:
var employees = _entities.Employees.Include("Manager").ToList()
通过使用包含,我避免为每个员工的经理记录生成查询(取而代之的是在查询中使用友好的 JOIN,并且数据库再也不会受到打扰)。
但是魔术字符串“Manager”的使用令人不安,尤其是在来自据称更原始、快速和肮脏的 Linq2SQL 之后。从编码的角度来看,它就像一把上膛的枪,准备抛出一个应该在编译时捕获的运行时异常。它还极大地阻碍了重构。
是否有任何内置的属性或方法来解决这个问题?例如,我将Manager.EntityKeyPropertyName
其视为静态字符串属性,但这似乎不是我想要的。我宁愿不在某处手动添加硬编码的常量列表,但它会比裸智能盲魔术字符串更好。