8
有沒有辦法從.NET Entity Framework 4調用T-Sql's MERGE命令?MERGE in Entity Framework
有沒有辦法從.NET Entity Framework 4調用T-Sql's MERGE命令?MERGE in Entity Framework
不,沒有這樣的內置功能 - 你必須建立自己的。很常見的是像實例方法:
public void SaveOrUpdate(MyEntity entity)
{
if (entity.Id == 0)
{
context.MyEntities.AddObject(entity);
}
else
{
context.MyEntities.Attach(entity);
context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
// You can call SaveChanges here or you can call it separately after multiple changes
}
這是例如,對於與在數據庫(IDENTITY
)產生Id
自動脫離實體工作。新實體的默認ID始終爲0,因爲實際值將在保存更改期間分配。
謝謝,但是,當使用DDD並且你正在附加一個聚合根,有幾層的屬性嵌套,那麼你需要做一些形式或遞歸。有沒有這樣的例子? (這也令人費解,EF團隊希望開發者自己處理這種常見的場景,當其他的ORMS如NHibernate提供開箱即用的合併時) – 2014-04-25 15:16:24
但是如果你不知道數據庫中是否存在該對象呢? 'MERGE'語句正好用於確定對象是否存在,並根據需要更新或插入*。 – 2014-11-17 16:49:19
您錯過了刪除部分。 – Azimuth 2017-05-16 14:25:43