0
尋求最佳實踐建議實體框架單行CRUD
很多時候我必須對我的ASP.NET應用程序中的單個記錄執行CRUD操作。
刪除,我是做像
var myRecord = context.myTable.Find(myID);
if (myRecord != null)
{
context.myTable.Remove(myRecord);
context.SaveChanges();
}
約做這樣
new context().myTable.Find(myID).Remove();
閱讀一些EF和存儲庫模式的工作人員(尤其是Here)後的思考,我與通用庫的幫助下理解,至少我可以這樣做:
class UnitOfWork
{
void RemoveRecord(myRecord)
{
var context = FindMyContext(myRecord); //[here](http://blogs.msdn.com/b/alexj/archive/2009/06/08/tip-24-how-to-get-the-objectcontext-from-an-entity.aspx)
context.Entry(myRecord).State = EntityState.Deleted;
context.SaveChanges();
}
}
我可以使用它像我的代碼:
new UnitOfWork.RemoveRecord(myRecord);
這是個好主意嗎?
一個問題是我可能不想執行context.SaveChanges這裏,因爲可能有其他事情正在進行此上下文,不應保存 – Yiping
看看[this](https:// www。 youtube.com/watch?v=QwwfTWMrM9k),它幫助我瞭解了工作單元主題。關於這一點的是,你是否真的需要做額外的工作,所有這一切取決於你正在從事的項目有多大。 – GregoryHouseMD
如果我正確地理解了這個問題,您可能需要考慮使用TransactionScope來控制更新http://msdn.microsoft.com/en-us/library/vstudio/bb738523(v=vs.100).aspx – Haroon