方案
数据访问层
- EF生成的.edmx和类
- 仅用于访问SQL数据库并将数据传递到业务层
业务层
-
业务实体: 包含所有验证逻辑,标记有
[DataContract]
属性,以便可以将它们作为参数传递给我的Web服务
问题
我想使用存储库模式来处理这个方案。存储库将包含要在数据库上执行的所有CRUD操作,接受并返回业务层实体。这意味着存储库将位于业务层中,因为只有业务层可以引用数据层,而不是相反。我还计划在其他项目中使用数据层程序集,这就是为什么我希望将存储库放在数据层中,而不是业务层中(这对于此项目是特定的)。
你有什么建议吗?我应该在业务层中保留存储库并为每个不同的业务层编写一个存储库吗?还是应该将存储库保留在数据层内,不接受或返回业务实体。
或者,作为另一种选择,有没有人可以推荐一个不同的方法,以获得更合理、可扩展的架构?
感谢阅读,等待回答