2014-01-15 52 views
15

我在使用實體框架時遇到了asp.net中的此錯誤: 「無法將類型System.Data.EntityState隱藏轉換爲System.Data.Entity.EntityState。存在顯式轉換(您是否缺少演員? 「不能將類型'System.Data.EntityState'隱式轉換爲'System.Data.Entity.EntityState'。存在明確的轉換(您是否缺少演員?)

下面是摘錄:

foreach (OrderLine line in order.OrderLines) 
{ 
    context.Entry(line.Product).State = System.Data.EntityState.Modified; 
} 

請建議我應該怎麼做才能解決錯誤。

+1

是什麼類型'context'? – trailmax

回答

42

當您使用EF 6或從EF 5移至EF 6時,應使用System.Data.Entity.EntityState而不是System.Data.EntityState。當您的項目引用EF6但您擁有EF5的代碼時,會發生此錯誤。

此外,請檢查此鏈接:When upgrading from EF5 to EF6 should I replace System.Data.Objects?

+1

當添加一個從「Web API 2 OData Controller with actions使用實體框架」繼承的新控制器時,生成的代碼包含「db.Entry(application).State = EntityState.Modified」,應該將其更改爲「db.Entry (應用程序).​​State = Entity.EntityState.Modified' –

0

你的代碼必須是這樣的:

if (ModelState.IsValid) 
{ 
    db.Entry(movie).State = System.Data.Entity.EntityState.Modified; 
    db.SaveChanges(); 
    return RedirectToAction("Index"); 
} 
return View(movie); 
相關問題