我試圖複製EF CTP4中我們使用NHibernate的許多實踐。EF CTP4何時調用context.SaveChanges
目前我們有一個通用的知識庫接口(CTP4實際上使DbContext.Set非常容易)。
我們正在傳遞上下文並使用StructureMap來根據HttpRequest對其進行範圍。
在NHibernate中,我們傳遞了ISession(再次使用StructureMap創建),但使用ActionFilter(UnitOfWork)在請求結束時提交事務。
我們在EF CTP4中有相同的交易嗎?如果不是,我應該使用相同的過濾器來調用context.SaveChanges(),或者只是在存儲庫中執行此操作。
請注意,最簡單的測試方法是查看一個實體是否是新建的。通過NH,我們可以直接調用ISession.SaveOrUpdate。請注意,我所有的實體都使用Guid標識符。也許檢查默認(Guid)?
謝謝。
你知道了嗎? – Chad 2011-01-02 14:22:54
@Chad,我做了類似於下面的帖子。缺點是EF不直接公開交易,因此您失去了對NH的控制權(例如明確回滾交易)。另外,在我的過濾器中使用了System.Transactions,我發現這對於SQLCE是不可能的。 – 2011-06-14 07:46:21