ReferentialConstraint中的依赖属性映射到存储生成的列。专栏:'ID'

时间:2011-07-10 17:15:07

标签: c# .net entity-framework entity-framework-4

当我尝试添加Venue对象并调用SaveChanges()时,我无法弄清楚为什么会出现此错误。具有Venue对象的模型的唯一区别是它们与City有1到1..0的关系。

City city = ProcessCityCache(ev, country, db); // After this call, 'city' is already persisted.
venue = new Venue {
    TicketMasterURL = ev.VenueSeoLink,
    Name = Capitalize(ev.VenueName),
    City = city
};
db.Venues.AddObject(venue);
db.SaveChanges(); // Exception thrown here.

非常感谢任何见解!

Model Diagram

(在自己的标签/窗口中打开图片以查看完整尺寸)

5 个答案:

答案 0 :(得分:29)

我发现了问题。这都怪我。我将FK_Venue_City关系设置为City.ID - > Venue.ID我想要的是City.ID - > Venue.CityID。我在数据库中进行了更改,然后更新了模型。

答案 1 :(得分:8)

好的,添加我的经验与这个模糊的错误消息:

我有同样的例外,在将数据库与EDMX进行比较后(这是一项繁琐的任务!!)我发现我错误地设置了一对一的关系(外国人是主要的,主要的是外国的)

一旦我确定一切顺利完成!

无论如何 - 希望我失去的3-4个小时会帮助别人! :)

答案 2 :(得分:5)

我一直在遭遇类似的问题。在我的情况下,我错误地设置了FK关系,然后将带有错误FK的表导入到我的EF模型中。尽管在Visual Studio中使用更新向导修复了FK关系,但我没有选择更正。

为了解决这个问题,我从EF模型中删除了表格,然后使用更新向导重新导入它,最终在更改中找到了。我希望这有助于其他人!

答案 3 :(得分:0)

我的情况也是错误配置的关联。具体来说,当我需要的是1..0,1

时,我建立了1..1的关系

答案 4 :(得分:0)

添加我的两位。我有这个错误,并最终发现我的父母/子女关系被逆转了。一旦我清理了这种关系,它就再次起作用了。