我一直在思考这个问题一段时间了,想不出一个可接受的解决方案。我有一个计划变得非常大的应用程序。正因为如此,我正在努力使其模块化。它基于MVC4。我还没有决定使用ORM或自己映射所有东西。我想有以下结构:实现LastUpdated和UpdatedBy的设计模式
----------------------
| Database
----------------------
| Data/Data Access Layer (Class Library) (Objects reside here)
----------------------
| Core MVC Project (User and Session are stored here)
----------------------
| MVC Modules
我想保持UpdatedBy
场尽量靠近数据库尽可能的验证,可能在数据/数据访问层。问题是我想将user
存储在Session
中,并在类库中进行验证(没有Session
)。我也想尽量避免在各地传递user
。有没有办法将用户存储在Session
中,并让数据访问层访问该信息而不通过user
?任何人都有如何优雅地做这件事的建议?
编辑:我想保持validation
,并CRUD
活动尽量靠近数据层可能的,其中核心MVC项目只是调用对象和数据层上Save()
验证对象,计算出修正哪些用户或创建它并将其保存到数据库。
编辑2:数据层必须在MVC层中完全没有依赖关系。
可以创建依赖关系并将其注入到数据访问层,该数据访问层在创建会话时从会话中获取信息,但屏蔽了数据访问层不依赖于会话对象。 – Grax
@Grax我会怎么做?我对依赖注入知之甚少。 – coryrwest
现在你有什么技巧让你的图层分开? – Grax