2011-09-20 113 views
4

我有三个表在我的数据库t1,t2和t3和t1是t2和t3的“基础”。每个表都有一个名为Id的列,而t2和t3也有一个名为t1Id的列。c# - 从一个基类继承两个类给出错误3024

在t1.t1Id和t2.t1Id/t3.t1Id上也有基数为1到0..1的外键约束。

在VisualStudio的EF-Modeldesigner我产生了以下情况:

Basic picture of the situation

确实有更多的列,但他们什么都没有做我的问题;-)。编译期间我得到了两个错误,错误代码3024:

Problem in mapping fragments starting at line xy: Must specify mapping for all key properties t1.t1Id of the EntitySet t1s 

编辑:我使用POCO-类

我不能看到那里的问题可能是。我试图通过添加ForeignKey-association和navigation-properties来解决问题,但没有成功。

回答

4

您不应将t1id添加到派生类型,t1id隐含在派生类型上。

要重建映射按“生成数据库从模型”

编辑:把t1id只在T1,而不是在T2和T3

+0

删除用户名之后,我不能编译项目:-( – amens

+0

@amens:什么是UserId?使用你的例子中的术语,或者发布你的原始代码。你试图编译时会得到什么错误? –

+0

对不起,我的意思是t1Id。错误:'EntityType t1没有密钥如果我删除子类,我得到了一些像以前一样的错误 – amens