【发布时间】:2011-10-02 14:53:08
【问题描述】:
在 Linq to SQL 中,我可以指定不必依赖于数据库中存在的外键和 pk 的关系,这对于创建这样的复合关系很有用:
public class Equipment_CableNormalised
{
...
[Association(ThisKey = "EquipmentId,PortNumber", OtherKey = "EquipmentId,PortNumber", IsForeignKey = false)]
public List<EquipmentPort> EquipmentPorts
{
get; set;
}
}
然后生成类似于" .. join EquipmentPorts EP on EP.EquipmentId = blah and EP.PortNumber = Blah"的sql。
我可以在 EF4.1 中做同样的事情(使用注释或流利的 api)吗?我知道您可以指定复合键并使用 [Keys] 和 [ForeignKeys] 属性,但这种关系不会映射到键...
【问题讨论】:
-
“关系不映射到键”是什么意思?如果它没有映射到键(PK/UK、FK),则它不是数据库关系。
-
不是数据库关系。碰巧的是,其中一个实体实际上映射到视图,而不是表。在 L2S 中将这些实体与关联定义连接在一起是一种方便的解决方案,这使我不必编写更复杂的查询代码。所以它不是数据库中内容的“纯粹”表示
标签: c# entity-framework entity-framework-4.1 entity-relationship