我正在嘗試更新附加了導航屬性的實體。無法設置類型屬性,因爲集合已被設置爲EntityCollection
public partial class Stock
{
#region Primitive Properties
public virtual int StockId
{
get;
set;
}
public virtual string StockName
{
get;
set;
}
#endregion
#region Navigation Properties
public virtual ICollection<Location> Locations
...
}
這種運作良好時,我只需要插入實體在數據庫中,但是當我更新我的錯誤是:
「System.InvalidOperationException」類型的異常出現在 EntityFrameworkDynamicProxies-在 型酒店'位置「Stock_4654D170FFCE308BB1B9AF1E2018476DF2E1C2E1DBA137F58AB96BCB9FA:Trade.Sales.Presentation.Admin但 用戶代碼
其他信息沒有處理無法設置FC859' ,因爲集合已被設置爲 EntityCollection。
我通過一些其他職位的去了,但其被給予的解決辦法是:
修改性質非虛擬即卸下「虛擬」的關鍵字。然而,我的資深人士說,這是不能接受的,因爲這個類是自動生成的,並且一旦實體從數據庫中更新就會改變。
我們有其他的解決方案嗎?
顯示實際拋出異常的代碼可能會有很大幫助。根據例外情況,我認爲,必須在某處存在類似'stock.Locations = someLocationsCollection'這樣的問題。也許使用'stock.Locations.Clear(); foreach(var loc中的someLocationsCollection)stock.Locations.Add(loc);'是替換集合作爲一個整體已經解決了問題。 – Slauma
嗨Slaumna這效果很好。該foreach作出了這項工作..你可以答覆作爲答案被標記?謝謝。 –