当我尝试添加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.
非常感谢任何见解!
(在自己的标签/窗口中打开图片以查看完整尺寸)
答案 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)
添加我的两位。我有这个错误,并最终发现我的父母/子女关系被逆转了。一旦我清理了这种关系,它就再次起作用了。