我对UoW,Repository Pattern等非常熟悉,但在看到Entity Framework模式的各种实现时,我很好奇为什么每个人都有一个Save或Add方法他们的仓库。如果您使用的存储库,让你的对象的新实例,我会想象有人会已经实体框架/工作单元架构问题
public Customer GetNewCustomer()
{
Customer customer = new Customer();
... any initialization code here ...
_context.Customers.AddObject(customer);
return customer;
}
我知道在某些设计中,您可以简单地使用
Customer customer = new Customer();
和它不是任何地方连接在上下文中。然而,我是私人构造函数的粉丝,所以对于Customer对象有一个实例化的单一点。考虑到这一点,当使用UoW模式时,在储存库中永远不会有添加/保存方法是有意义的,并且仅在IUnitOfWork接口上具有此功能?
在.NET中,'可以'以同样的方式发生。除了明确的代码事务使用外,方面还可以用于EF环境中的内置处理。我对UoW模式并不陌生,但它与DbContext与实体框架如何作为它的一部分一起工作,在某种意义上我正在寻找意见(谢谢,虽然!!) –
.NET有Spring.NET - 它不像Java中的Spring那么强大,但它可以以AoP方式处理事务。问题是它不容易与Entity框架相结合。你将不得不移动到NHibernate。另一个问题是,你应该有一个已经在你的团队中进行过这种方式的人,否则这将是非常痛苦的经历。 –