非主键上的实体框架关系

时间:2014-10-09 17:57:15

标签: c# linq entity-framework primary-key

我正在使用VS 2010与.Net版本4.0和EF版本5与现有数据库。这是我使用EF的第一个项目,我正在与实体关系挣扎。我有一个数据库,有两个表设置如下:

Table Keys

我只是想将它们加入EF作为一对多关系,仅在PART_SEQ_ID上加入,以便我可以使用LINQ进行查询。当我在模型视图中进行连接时,EF会将其他关键字段添加到连接中,并在相关字段中进行猜测。如果我没有加入表格,我会收到错误

  

从第294行开始映射片段时出现问题:没有为属性指定映射

  

从第254行开始映射片段的问题:潜在的运行时违反表PARTDETAILS键

我做错了吗?我发现this SO post表明这可能是不可能的。如果不可能,那么处理这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我认为您不会让导航员按原样使用您的架构。您可以更改架构,以便每个表都有唯一的,不可变的单列主键,或者您将在查询中管理联接:

from detail in partdetails
join part in parts on detail.part_seq_id equals part.part_seq_id...

注意生成的sql并查看您的执行计划,以确保您拥有所需的索引来有效地构建您的组合。

相关问题