unit-of-work相关内容
我已经阅读了尽可能多的关于 Stackoverflow 的帖子,其中关于在其中使用工作单元模式一个包含业务层的 ASP.Net MVC 3 应用程序.但是,我仍然有几个问题关于这个主题,非常感谢人们可以给我的任何反馈. 我正在开发一个使用 EF 4.1 的 ASP.Net MVC 3 Web 应用程序.我将同时使用存储库和此项目的工作单元模式类似于它们在 这个很棒的教程 我的项目的不同
..
谁有责任 谁有责任开始和完成 MVC 架构中的工作单元? 解决方案 这不是控制器的责任,它违反了SRP.控制器甚至根本不应该知道 UoW.在 Web 中,通常对服务器的每个请求使用一个 UoW.在这种情况下,UoW 应该在请求结束时处理,并在请求开始之后的某个地方开始(理想情况下,UoW 的开始应该是惰性的).执行此操作的最佳位置是使用 Application_EndRequest
..
有可能(甚至很有可能)我只是没有完全理解“工作单元"的概念.基本上,我认为它是一种在面向对象环境中使用的广泛事务.启动工作单元,与对象交互,提交或回滚.但这如何分解为这些对象背后的数据存储上的实际事务? 在具有单个 DB 和 ORM(例如 NHibernate)的系统中,这很容易.事务可以通过 ORM 进行维护.但是对于一个自定义域模型掩盖了许多不同数据源的系统呢?并非所有这些数据源都是关系
..
结合工作单元和存储库模式是当今使用相当广泛的东西.正如 Martin Fowler 所说,使用 UoW 的目的是形成一个 业务交易,同时不知道存储库的实际工作方式(持续无知).我已经审查了许多实现;并忽略具体细节(具体/抽象类、接口等),它们或多或少类似于以下内容: 公共类 RepositoryBase;{私人 UoW _uow;public RepositoryBase(UoW uow)//通
..
我想记录每个 SQLAlchemy 模型将执行的操作. 所以,我有一个 after_insert、after_delete 和 before_update 钩子,我将在其中保存模型的先前和当前表示, def keep_logs(cls):@event.listens_for(cls, 'after_delete')def after_delete_trigger(mapper, conne
..
我正在使用存储库和 UoW 模式.我的服务如下所示: 公共类 MyService : IService{私有只读 IUnitOfWork工作单位;私有只读 IMyRepository myRepository;public MyService(IUnitOfWork unitOfWork, IMyRepository myRepository){this.unitOfWork = unitOfW
..
我正在尝试为 sharepoint 创建一个库(类库),它将让所有 sharepoint dll 与 sharepoint 服务器交互以上传文件、文档并创建文档库和文档集. 现在这个库可以被客户端使用,比如 web 应用程序(asp.net webform 或 mvc)或控制台应用程序或 web api/wcf 服务或 windows 表单任何东西. 所以在这里我对创建存储库模式和工作
..
我想在我的 ASP.NET MVC 5 应用程序中添加两个 DbContext,一个用于 ASPIdentity,另一个用于我的 APP DB.我正在使用存储库模式.我的问题是,如何在 BaseRepository 中指定每个 DbContext 的实体?这就是我所做的. 1- DatabaseFactory &IDatabaseFactory 公共类DatabaseFactory其中 T
..
我有一个特定的场景,根据一些约束在多个表上完成插入和更新......所以很自然地将事务范围用于这些场景.现在,我有一个存储库层和一个服务层.服务层调解存储库和 UI,并且是持久的无知.现在我很困惑在哪里使用服务或存储库层中的事务.我没有使用任何 ORM.我也看到有人在这种情况下提倡使用工作单元模式.有没有适合我当前场景的工作单元模式示例,我看到的所有示例都使用 ORMS. 谢谢, 解决
..
尽管这类问题被问了很多次,但我还是很难理解存储库和工作单元模式之间的关系.基本上我仍然不明白哪个部分会保存/提交数据更改 - 存储库还是工作单元? 因为我见过的每个例子都与将这些与数据库/OR 映射器结合使用有关,所以让我们举一个更有趣的例子 - 让数据持久化到数据文件中的文件系统;根据模式,我应该能够做到这一点,因为数据的去向无关紧要. 对于基本实体: 公共类帐户{公共 int I
..
我尝试使用嵌套的工作单元在我的应用程序中实现工作单元模式. 我有以下界面: 接口IDataService{IUnitOfWork NewUnitOfWork();INestedUnitOfWork NewNestedUnitOfWork(IUnitOfWork parent);}接口IUnitOfWork:IDisposable{无效的Commit();}接口INestedUnitOfWo
..
我看到了其他类似的问题,但是我还没有找到可行的解决方案. 我在调用数据库和ServiceBus时正在使用事务. 我正在为数据库使用UnitOfWork/EntityFramework. 这是我的代码 /*创建列表并添加到UnitOfWork存储库*/....使用(TransactionScope scope = new TransactionScope()){_unitOfWo
..
我已经实现了EntityFramework模式以及存储库和工作单元.该实现类似于代码项目存储库示例,但是我需要对工作单元进行增强. 工作单位 公共类GenericUnitOfWork:IDisposable{//初始化代码公共Dictionary仓库=新的Dictionary();公共IRepository仓库(),其中T:类{如果
..
我正在按照“工作单位"模式进行界面.我的界面如下所示: 公共接口IDataContext:IDisposable{void SaveChanges();TSource Create(TSource toCreate),其中TSource:class;TSource Update(TSource toUpdate),其中TSource:class;bool
..
我有一个Asp.net core 2应用程序,在其中配置了带有存储库模式和工作单元的dbContext. 一切正常,我可以在控制器内访问UnitOfWork并获取数据. 我试图访问中间件中的上下文以及另一个项目中的类,但是我真的不知道哪种方法是最好的. DbContext 公共类BloggingContext:DbContext{公共BloggingContext(DbCont
..
我一直在关注
..
我们正准备对目前正在使用垂死的技术堆栈的大型企业应用程序进行模块化。我的问题是在“存储库/工作单元”模式中,一个工作单元中可以有多少个存储库?假设我们在一个DbContext上创建了一个UnitOfWork,该DbContext公开了50多个存储库实体。这会导致性能问题吗? 我们正在考虑将其拆分,以便每个模式都有自己的DbContext,但这似乎增加了很多复杂性,因此不允许轻松地加入模式之间
..
我有一个通用存储库,如下所示,它可以处理我的 CRUD ,因为单个实体易于使用,当我尝试加入我的 POCO 时,问题就开始了。 让我说我有这些POCO,它们是使用流畅的映射的api(多对多和一对多关系): 公共班学生 { 公共学生() { this.Courses = new HashSet(); } public int StudentId {get
..
我正在使用UnitOfWork模式来抽象我的Asp.Net应用程序中的数据库访问。基本上,我遵循此处描述的UnitOfWork模式方法: https://chsakell.com/2015/02/15/asp-net-mvc-solution-architecture-best-practices/ 但是,我很难理解如何获得新添加的商品的ID。就像我要向客户存储库中添加新客户一样,我将
..
我有这个银行ATM模拟应用程序,该应用程序实现了一些域驱动的设计架构和工作单元模式。 此应用程序具有3个基本功能: 检查余额 存款 提现 这些是项目层: ATM.Model(域模型实体层) namespace ATM.Model { public class BankAccount { public int Id {get;组; } 公用字串Acc
..