按照此处MVC3 和 Entity Framework提出的设计,我正在尝试使用 MVC4 + EntitiFramework5 为 DAL、BL 和 web 创建不同的层。
引用@Davide Piras
1 - ProjectName.Interfaces(类库,实体的接口);
2 - ProjectName.DAL(类库,唯一允许知道使用 EF 的库,POCO 实体使用另一个文件实现项目 1 的接口,在该文件中您使用部分类重新声明相同的对象......);
3 - ProjectName.BL(类库,业务逻辑,引用上面1和2的两个项目);
4 - ProjectName.Web(ASP.NET MVC 应用程序,表示层,引用两个项目 1 和 3,但不是 2);
我对 BL 和 DAL 之间的联系有疑问。DAL 知道 EF,BL 不应该.. 但是如何实现呢?我的意思是,我在两个层上都创建了代表我的实体的类(这对我来说似乎有点重复......即使在 BL 中我将添加验证和其他 sutff),但是我如何将数据库值公开给 BL ?
在我拥有的默认 MVC4 解决方案中
DbSet<Entity> entity
我可以查询(.Find等)..我想我需要在我的BL中映射它们(IQueryable?IEnumerable?Isomething??)
完全困惑..任何帮助表示赞赏