1
我對Entity Framework 4.1很新穎。我開始用EF作爲我的DAL編寫一個新應用程序。我使用數據庫優先方法使用POCO類(使用POCO t4模板)。ObjectSet.ApplyCurrentValues v/s StateManager.ChangeObjectState
我GenericRepository得到了下面的更新方法
public void Update(TEntity entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
_context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
//_objectSet.ApplyCurrentValues(entity);
}
我有一個gridview這是數據綁定到具有UpdateMethod = 「UpdateStore」,它僅採用一個參數是如下的ObjectDataSource ...
public void UpdateStore(Store franchise)
{
unitOfWork.StoreRepository.Attach(franchise);
unitOfWork.StoreRepository.Update(franchise);
unitOfWork.SaveChanges();
}
我在這裏遇到了幾個問題:
當我看到文檔對於ApplyCurrentValues,它證明我應該使用它來更新值,但這不起作用(正如您可以在上面的註釋行中看到的那樣)。然後,當我嘗試與ObjectStateManager.ChangeObjectState,它的作品。這兩種方法有什麼區別。
正如你所看到的,我首先附加然後應用更新方法。我可以在我的GenericRepository更新方法中結合attach和更新狀態。這樣做有沒有陷阱?當您連接從數據庫中加載實體
我對使用ApplyCurrentValues編輯的鏈接有了一些瞭解。所以它在一定程度上解決了第一個問題,但很想知道第二個問題 – DotNetInfo 2011-05-18 01:42:09