Linq 最好的项目模式是;“工作单位”;在业务层
我在C#.NET中有一个桌面项目,它的结构是:gui、业务和数据访问层。每个业务层类表示数据库的一个实体。我正在使用linq访问数据库。但是现在项目的实现方式不允许以原子方式进行许多操作,我需要在业务层完成这些操作 我搜索了一些设计模式,找到了unitOfWork,它在提交所有更改后,在相同的上下文中执行数据层中的所有操作。这将使操作原子化。但问题是,我想做的操作需要在验证之前进行,这意味着,我需要在验证之前从业务层调用方法,而不是从数据层调用方法。业务层中的这个调用将创建另一个工作单元,从而创建另一个上下文,打破我正在尝试执行的更大操作的原子性Linq 最好的项目模式是;“工作单位”;在业务层,linq,linq-to-sql,design-patterns,unit-of-work,atomicity,Linq,Linq To Sql,Design Patterns,Unit Of Work,Atomicity,我在C#.NET中有一个桌面项目,它的结构是:gui、业务和数据访问层。每个业务层类表示数据库的一个实体。我正在使用linq访问数据库。但是现在项目的实现方式不允许以原子方式进行许多操作,我需要在业务层完成这些操作 我搜索了一些设计模式,找到了unitOfWork,它在提交所有更改后,在相同的上下文中执行数据层中的所有操作。这将使操作原子化。但问题是,我想做的操作需要在验证之前进行,这意味着,我需要在验证之前从业务层调用方法,而不是从数据层调用方法。业务层中的这个调用将创建另一个工作单元,从而创
问题是:在同一linq上下文中,从业务层调用业务层的一个或多个方法的最佳项目模式是什么
- 在业务层的顶部创建一个服务层
- 这个服务层由两个服务组成(可以是真正的WCF服务,也可以是普通的C#类):一个用于阅读,一个用于写作
- 读取服务不是事务性的,它只包含执行查询(即读取数据)的方法
- 写作服务是事务性的;它的所有方法要么创建事务上下文,要么遵循工作单元模式
- 写入服务在其业务层上执行C/U/D操作之前访问读取服务进行验证