实体框架4.0映射问题

时间:2013-02-15 16:51:54

标签: c# entity-framework-4 edmx

尝试使用Entity Framework 4.0运行解决方案时出现以下错误,我想知道如何更改映射设置以更正它:

  

从第588行开始映射片段时出现问题:必须指定EntitySet UserDatas的所有关键属性(UserDatas.Id)的映射

为了给出一些背景知识 - 我最初创建了下面显示的表格,其中每个列都有修改/创建日期/按 Id 列,但后来决定将它们拉出来进入抽象 UserData ,然后使用继承。因为我改变了这一切,所以一切都变成了锅!

有没有人对我出错的地方有任何指示?我一直在使用下面的设计视图(GUI),感觉就像我碰到了一堵砖墙。

我的db.edmx设计视图如下所示,点击错误将我带到下面显示的Variables表,但是对于继承此Id的所有其他表重复出错(请忽略其他表的所有链接) - 我不想发布整个大db原理图:

enter image description here

非常感谢。

1 个答案:

答案 0 :(得分:1)

听起来你在这里误用了OO继承。仅仅因为对象共享具有相同属性名称的项目并不意味着它们从基础继承。例如,如果Tag是UserData,请问你自己的模块?我怀疑你可以更好地说明Tag HAS A UserData指向包含而不是继承。我建议设置一个通用的IUserData接口,其中每个对象都明确地实现了接口。在这种情况下,您的映射会将UserData接口的属性移回基础类(因为它们最初配置)。虽然您可以使映射与继承模型一起使用,但从LINQ和TSQL角度来看,查询将变得非常复杂。