0
asp.net mvc 5,實體框架6.0。我有ADO.NET EDM模型。我需要更新多個實體。如果我多次使用Entry,我不例外:ObjectStateManager已經有一個具有相同密鑰的對象。 我怎麼能做到這一點,使用像這樣的代碼:我可以反覆使用Entry嗎?
db.Entry(company.Company).State = EntityState.Modified; //one type object
db.SaveChanges();
db.Entry(company.Preview).State = EntityState.Modified; //another type object
db.SaveChanges();
foreach (CompanyTelephone item in company.Phones) // another type
{
if (item.Id > 0)
{
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();
}
else
{
db.CompanyTelephones.Add(item);
}
}
db.SaveChanges();
難道是在您的公司.Phones收藏中您有多個記錄使用相同的密鑰嗎?另外你爲什麼要多次調用SaveChanges? – Damon
號碼在電話中,所有的密鑰都不同。但是,在手機和公司或預覽中的ID可能會重合,它會導致錯誤。 對於Savechanges:我認爲它重置ObjectStateManager,但它不是。 – Buboon