c#System.Data.Entity.Infrastructure.DbUpdateException插入新记录
我已经在我的应用程序中创建了一个导入系统 我从一个JSON的上传开始,这个JSON作为字符串从我的web服务接收,然后在一个名为c#System.Data.Entity.Infrastructure.DbUpdateException插入新记录,c#,linq,C#,Linq,我已经在我的应用程序中创建了一个导入系统 我从一个JSON的上传开始,这个JSON作为字符串从我的web服务接收,然后在一个名为tpp的对象中进行转换(我已经检查并正确创建和填充了我的对象) 然后我在数据库中插入一些内容: db.States.Add(tpp); db.SaveChanges(); 它很好用。然后,tpp包含cities,因此我使用以下代码: foreach (City curCity in tpp.Cities) { db.Cities.Add(curCity);
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包含一个街道列表(list Streets
,在我的City类中),但我稍后将它们保存在另一个表中,并且States也包含一个城市列表,但它不会引发异常
那么,当我在foreach循环中添加一个city时,为什么我的代码会返回一个异常呢?如果POCO上的数据结构和传入的JSON是正确的,那么就不必手动添加子项了。从你的代码来看,它似乎是。因此,只要添加ttp.Cities.Streets,。。。等等。如果POCO上的数据结构和传入的JSON正确,则不必手动添加子项。从你的代码来看,它似乎是。因此,只要添加ttp.Cities.Streets,。。。等等。这将有助于查看Cities实体或表结构。您可以共享Cities实体类吗?这将有助于查看Cities实体或表结构。您可以共享Cities实体类吗?