c#System.Data.Entity.Infrastructure.DbUpdateException插入新记录

时间:2015-12-30 18:23:21

标签: c# linq

我已在我的应用程序中创建了一个导入系统。

我从上传JSON开始,这个JSON从我的Web服务接收为字符串,然后在名为tpp的对象中转换(我已经检查过,我的对象被正确创建并填充)

然后我在我的数据库中进行了一些插入:

db.States.Add(tpp);
db.SaveChanges();

工作正常。然后,tpp包含cities,因此我使用此代码:

foreach (City curCity in tpp.Cities)
   {
   db.Cities.Add(curCity);
   db.SaveChanges();
   }

在此db.SaveChanges()中,我收到了关于保存外键的System.Data.Entity.Infrastructure.DbUpdateException

tpp.Cities包含Streets列表(我的City类中的List<Street> Streets),但我稍后将其保存在另一个表中,并且States还包含一个城市列表,但它不会抛出异常。

那么,当我在foreach循环中添加一个城市时,为什么我的代码会返回异常?

1 个答案:

答案 0 :(得分:3)

如果POCO和传入JSON上的数据结构正确,则不必手动添加子项。从你的代码看来它是。所以只要添加ttp就可以处理所有内容,只要 ttp.Cities.Streets ...等等就会被填充。