1
我有一個名爲「SPs」的對象,指的是存儲在數據庫中的所有提供者的庫存產品列表。如何更改多個對象所指的實體的狀態?
在我的行動,我需要創建一個名爲「PSP的」基於目前的供應商ID,其過濾的SP新的對象:
Public ActionResult Edit(int id, int pid)
{
var SPs = dbContext.Products.Where(o => o.ID == id).Select(o => o.SPs).ToList();
// do something based on SPs
...
var PSPs = Filter(SPs, pid);
// edit all PSPs
我試圖變化通過這樣的PSP簡稱實體的狀態:
PSPs.ForEach(o => {
dbContext.Entry(o).State = EntityState.Modified;
}
}
但接收到異常處理消息是這樣的:
連接類型'SP'的實體失敗,因爲另一個相同類型的實體 已具有相同的主鍵值。
更多,這裏是SPS導航性能在產品類:
public ICollection<SP> SPs { get; set; }
和SP類:
public class StockProduct
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SPID { get; set; }
[ForeignKey("Product")]
public int ProductID { get; set; }
public Product Product { get; set; }
[ForeignKey("Provider")]
public int ProviderID { get; set; }
public Provider Provider { get; set; }
...
}
因此,任何想法?
我認爲在你的表格中你的狀態字段有一個唯一的約束。 –
我們可以看到你的產品類別嗎? – GGO
@GGO:不是我們應該看的'SP'類嗎? – Flater