entityframework+Repository+UnitofWork我正在考虑用EF4开始一个新项目并翻阅一些文章,我发现了一些关于EF的文章和存储库模式和工作单元(http://tdryan.blogspot.com/2011/03/another-entity-framework-4-repository_15.html和http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx)我使用的是第一个(第1部分、第2部分和第3部分)。它们非常相似。在这种情况下我是新手。我对这两个帖子感到困惑。我已经创建了所有内容,但我不知道如何开始使用上下文并添加一些实体。我发布第二个链接是因为发布了实现它的方法。ObjectContext派生自IUnitOfWork,所以我很难选择两者中哪一个更好用。你的问题不是傻子!开始使用UnitOfWork和Repository模式需要一些时间。首先,要安装一些终端。UnitOfWork封装了一组操作并将它们组合在一起。因此,您可以在一个逻辑组中创建客户、产品和相应的订单。存储库为您提供了对实体的单点访问,大多数时候使用一些特定的方法来检索数据。多个存储库可以在一个事务中使用,这就是它们共享UnitOfWork的原因。在您发布的示例中,T4文件创建了一些存储库接口。一个是只读的,具有选择实体的方法,但另一个存储库具有添加和删除等方法。所以如果你想添加实体,你需要先构造UnitOfWork,然后为你使用的实体类型(比如CustomerRepository或ProductRepository)实例化Repository。然后,您可以使用Add方法将实体添加到存储库。使用完存储库后,可以调用UnitOfWork.Commit()将更改保存到数据库。IUnitOfWorkunitOfWork=newEFUnitOfWork();IRepositorycustomerRepository=newCustomerEFRepository(unitOfWork);客户c=新客户();//初始化客户customerRepository.Add(c);unitOfWork.Commit();在您发布的示例中,使用AddeddependencyinjectionusingStructureMap。这是一个完全不同的话题,但这意味着您不直接构建UnitOfWork和Repository,而是使用您设置的一些配置将它们“注入”到您的代码中。如果您的项目是Web项目,请创建一个处理程序,在请求中启动一个事务并在最后一步结束它。我认为可以在这里找到一个更简单的示例:https://github.com/ayende/CourseSampleApp您还可以在nhibernate上找到其他示例以满足您的需要。以上就是C#学习教程的全部内容:实体框架+存储库+工作单元分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
