实体框架 - 如何在辅助表中的非主键列上连接表?

时间:2010-02-17 20:34:18

标签: c# entity-framework join mapping foreign-keys

我想使用实体框架加入2个表。我希望第二个表的连接位于非主键列上。

e.g。我有一个带有字段的表Foo

Foo.Id (PK)
Foo.DbValue

和表格栏

Bar.Id (PK)
Bar.DbValue
Bar.Description

我想在DbValue字段中加入Foo到EF吧。

在hibernate / nhibernate中,可以通过向多对一添加列参数来实现。大致像这样

<class name="Foo" table="Foo>
  <id name="Id" column="Id" />
  <many-to-one name="Bar" class="Bar" column="**DbValue**" />
</class>

如果有人知道如何在EF中执行此操作,请提前致谢。

1 个答案:

答案 0 :(得分:7)

嗯,你不能把它作为命名关系(即标准方式)。

所以这意味着关系不是模型的一部分。

但是你仍然可以做一个标准的LINQ连接:

from f in ctx.Foo
join b in ctx.Bar on f.DbValue equals b.DbValue
select new {f,b} 

希望这有帮助

查看我的EF Tips series.