【发布时间】:2012-01-21 06:05:35
【问题描述】:
我有一个 C# .NET 桌面项目,其结构包括:gui、业务和数据访问层。每个业务层类代表数据库的一个实体。我正在使用 linq 访问数据库。但是今天项目的实现方式不允许原子地进行很多操作,我需要在业务层完成。
我搜索了一些设计模式,发现 unitOfWork 使数据层中的所有操作都在同一上下文中并且在所有更改都提交之后。这将有助于使操作原子化。但问题是我想要做的操作需要在之前进行验证,这意味着,我需要从业务层调用一个方法来进行验证,而不是从数据层调用方法。业务层中的这个调用会创建另一个 unitOfWork,因此会创建另一个上下文,破坏我正在尝试执行的更大操作的原子性。
问题是:在同一 linq 上下文中从业务层调用业务层的一个或多个方法的最佳项目模式是什么?
【问题讨论】:
标签: linq linq-to-sql design-patterns unit-of-work atomic