我想使用n层架构的asp.net mvc项目。我在这个问题上感到困惑;
我有4层 BLL , DAL , 实体 和 WebUI 。 WebUI 层是一个asp.net mvc项目。我将数据模型添加到 实体 层。在 DAL 中,我使用实体框架创建了一些关于crud opparations的类。最后,我将这些类作为 BLL 上的存储库提供服务。 BLL 知道 DAL 和 实体 层,< strong> DAL 知道 entites 层和 WebUI 只有知道 BLL 。在 WebUI 中,我可以访问存储在 BLL 中的存储库。 但是这个存储库&#39;返回值是实体类。我必须提供 实体 到 WebUI 层的参考。我不希望 WebUI 直接访问数据库 。它应该使用 BLL 中的存储库访问数据库。
我该怎么办?我想做正确的事。我的错了 架构?
感谢您的帮助。
答案 0 :(得分:3)
您可以拥有另一个仅包含BLLEntities模型的项目。
BLL将始终将BLLEntities映射到DALEntities和DALEntities到BLLEnttiies。
您可以使用AutoMapper。
BLL以上的任何层都应该处理BLL实体而不是DALEntities。