我已在我的应用程序中创建了一个导入系统。
我从上传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循环中添加一个城市时,为什么我的代码会返回异常?
答案 0 :(得分:3)
如果POCO和传入JSON上的数据结构正确,则不必手动添加子项。从你的代码看来它是。所以只要添加ttp就可以处理所有内容,只要 ttp.Cities.Streets ...等等就会被填充。