c# - 从一个基类继承两个类给出错误 3024

标签 c# sql-server-2008 inheritance entity-framework-4.1 poco

我的数据库中有三个表 t1、t2 和 t3,t1 是 t2 和 t3 的“基础”。每个表都有一个名为 Id 的列,t2 和 t3 也有一个名为 t1Id 的列。

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-Classes

我看不出问题出在哪里。我尝试通过添加 ForeignKey-association 和 navigation-properties 来解决问题,但没有成功。

最佳答案

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

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

编辑:将 t1id 仅放在 t1 上,而不放在 T2 和 T3 上

关于c# - 从一个基类继承两个类给出错误 3024,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7486223/

相关文章:

c# - 如何从非 gui 线程 C# 中创建表单

c# - 从 C# 打开的 Outlook 新邮件窗口似乎有焦点,但我的应用程序仍然有它

使用 Return void 和 object (string) 的 C# 重载

c++ - protected 继承 - 为什么不允许某个命令

C++ 存储变量和继承

c# - NAudio Asio 录制和播放

visual-studio-2010 - 具有大量引用资料的数据库项目

image - VARBINARY(MAX) 和 IMAGE 数据类型之间是否存在很大的技术差异?

sql-server - SQL Server Broker服务目标传输队列问题

postgresql - 为什么这个使用继承的外键不起作用?