我正在尝试复制我们在EF CTP4中使用NHibernate的许多实践。
目前我们有一个通用的存储库接口(CTP4实际上使用DbContext.Set非常容易。)
我们正在传递上下文并使用StructureMap来根据HttpRequest对其进行范围化。
使用NHibernate,我们传入ISession(再次使用StructureMap创建),但使用ActionFilter(UnitOfWork)在请求结束时提交事务。
我们在EF CTP4中有等效的交易吗?如果没有,我应该使用相同的过滤器来调用context.SaveChanges()或者只是在存储库中执行此操作。
另一方面,最简单的测试方法是查看实体是否是新实体。使用NH,我们可以轻松调用ISession.SaveOrUpdate。请注意,我的所有实体都使用Guid标识符。也许是默认检查(Guid)?
感谢。
答案 0 :(得分:1)
我知道这是一个迟到的答案,你现在已经想到了,但我猜它对搜索人有用。 Rob conery在使用actionfilter和Ef为每个请求范围创建事务时有很好的帖子。
哦,是的,我会在一个测试默认值(Guid)的通用存储库上创建一个UpdateInsert()方法。