如何在Entity Framework 4 Entitydesigner中正确设置两个对象之间的关联?

对于一个新项目,我试图先创build我的业务类,然后创build真正的数据库表。 因此我正在使用entity framework4devise器。 创build了一个新的“ADO.Net实体数据模型”文件,扩展名为.edmx。

我创build了两个实体:
替代文字

我想在Product – > Group之间添加一个1到nc的关系。 如果我已经创build了MSSQL数据库,我会添加一个列IDGroup到表产品和引用Product.IDGroup到Group.IDGroup。 据我所看到的,如果我将一个名为IDGroup的新属性添加到Product Entity中,我不能在devise器中添加这样的关联

这是我如何添加映射: 替代文字

其结果是:
替代文字

现在是这个问题的一部分:如果我从现有的MSSQL数据库添加两个表到edmx文件,我会得到编译错误:

Error 3027: No mapping specified for the following EntitySet/AssociationSet - GroupSet, ProductSet 

这个错误意味着什么,我该怎么办才能解决这个问题? 如果我删除这两个表格,我会收到警告:

 Error 2062: No mapping specified for instances of the EntitySet and AssociationSet in the EntityContainer myContainer. 

有些东西告诉我,我做这一切都是错误的,这只是基本的东西。 我怎样才能做到这一点?

我刚刚碰到这个,当我谷歌search(我打你的问题)。

我可以在devise器中双击线(关联线)。 填写在那里的属性,我得到它的工作。

我也不得不closuresVS,并重新打开它,以获得一些错误报告消失…

不能说这是正确的答案 – 只是摸索,似乎得到的结果。

可能很容易错过的东西是从模型生成数据库 。 从我所了解的情况来看,在对数据库.edmx所做的每一项更改之后,都必须执行此操作。

这个简单的错误发生在我身上,导致了几分钟的挫折=)

当我使用安装了EF4.1的VS2010 SP1下的ADO.Net DBContext生成器从数据库生成模型时,出现此错误。 我使用的数据库在主键字段和外键字段之间没有任何参照完整性。

解决方法是双击打开参照连续对话框的关联行。 然后,我将Principal字段设置为带有主键的表,具有外键的Dependent作为表,在下拉列表中设置外键名称匹配并单击确定。

然后编译代码,我可以使用var foreign = DBContext.Primary.First()来处理实体。

史蒂夫

我有相同的错误,并且“添加关联”对话框没有帮助我设置的一点configuration是“引用约束”属性。 一旦我configuration,我重build了解决scheme,一切都很酷。

当我从模型图中删除一个关联时,出现了这个错误,但是关联保留在.edmx中的底层XML中。 他们只是我发现解决这个问题的方法是手动编辑edmx以删除对违规关联的引用。

您只需要从edmx文件中删除所有表格。 现在右键单击edmx文件并select更新表单数据库选项。 更新Ef,问题将得到解决。

我正在使用数据库第一种方法,遇到同样的问题。

是什么原因造成我的同事的问题是从数据库中删除了一个表,忘记更新模型。

我的解决scheme是从图中find已删除的实体。 (模型浏览器可能是有用的。)然后从图中删除它,因为如果您从数据库中删除表,EF不会删除实体。

生成并检查错误列表窗口(Ctrl + E,W)。

完成。

我还发现,在对entity framework上下文和模型进行更改后重新构build项目有时可以解决这些错误,特别是如果entity framework上下文位于不同的项目中。