0

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

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

提供一些背景知识 - 我最初创建了如下所示的表格,其中每个表格中包含Modified/Created Date/ById列,但后来决定将它们拉出到抽象的UserData 中,然后改用继承。自从我改变了这个,一切都变了!

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

我的 db.edmx 设计视图看起来像这样,单击错误会将我带到下面显示的变量表,但是对于继承此 Id 的所有其他表重复错误(请忽略所有指向其他表的链接 - 我没有'不想发布整个大数据库原理图):

在此处输入图像描述

非常感谢。

4

1 回答 1

1

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

于 2013-02-15T18:14:55.597 回答