0
如果我有CurrencyId,我會做這樣的事情:EF InsertOrUpdate用繩子PK
public void InsertOrUpdate(Currency entity)
{
if (entity.CurrencyId == default(int))
{
// New entity
this.dbset.Add(entity);
}
else
{
// Existing entity
this.context.Entry(entity).State = EntityState.Modified;
}
}
但我使用一個字符串貨幣代碼的PK,我想能夠添加或編輯它。所以我必須檢查數據庫中是否存在CurrencyCode。我該怎麼做呢?
添加一個新的實體是好的,但如果我嘗試編輯:
public void InsertOrUpdate(Currency entity)
{
if (GetByCurrency(entity.CurrencyCode) == null)
{
// New entity
this.dbset.Add(entity);
}
else
{
// Existing entity
this.context.Entry(entity).State = EntityState.Modified;
}
}
public Currency GetByCurrency(string currencyCode)
{
return this.dbset.Find(currencyCode);
}
我越來越
使用相同的密鑰在ObjectStateManager已經存在的對象。 ObjectStateManager無法使用相同的 鍵追蹤多個對象。
在
this.context.Entry(entity).State = EntityState.Modified;
謝謝@Mystere人 - 我試圖避免被一個:-)一個修改實體屬性,但它可能是最好的解決方案。 – nubm