根据两个表的PK创建一对一关系

时间:2013-03-23 22:56:40

标签: entity-framework visual-studio-2012 entity-framework-5

我对Entity Framework(目前正在使用EF5)和vs2012非常陌生,并且我很难尝试解决问题。

我有一个从我的数据库生成的.edmx。它有两个表:Item3rdPartyItem。简而言之,Item表是所有公司项的主表,而3rdPartyItem表是用于保存项的其他属性的表。这个3rdPartyItem表是由一家外部公司创建的,并且与他们的软件一起用于公司,所以我不能乱用这两个表。我要做的是显示网格中的项目列表,但我需要显示两个表格的所有字段的组合。在vs2012中,如果我创建一个关系并使其“从零到一”(因为对于Item表中的每个记录,在3rdPartyItem表中不一定必须是一个),vs抱怨没有正确映射。当我设置映射时,它会抱怨存在多个关系。我做了一些研究,发现你不能用2个主键建立关系,所以我认为这是问题所在。但是如何更改.edmx以便在代码中,我可以像这样访问Items和3rdPartyItem:

var items = dbContext.Items;
items.3rdPartyItem.SomeField <--field from 3rdPartyItem table.

不太确定是否可能,但如果是这样的话会非常非常有用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是每个类型的表(TPT)映射继承。您可以在此处查看MSDN演练(尽管您希望基本类型可以实例化):

http://msdn.microsoft.com/en-us/data/jj618293.aspx