我在我的解决方案中使用FluentNHibernate。来自fluentnhibernate文档的推荐文件夹结构如下:
实体文件夹,我们在其下有商业模式的POCO类。 Mappings文件夹,我们在其下面有我们的数据模型的映射。
我假设这两个文件夹会进入名为“BusinessModel”的业务层项目?见下文:
BuessinessModel
|_ Entities
|- Student.cs
|- Course.cs
|- Faculty.cs
|_ Mappings
|- Mappings.cs
也许创建另一个名为“DataAccess”的项目,该项目引用数据访问层的BusinessModel项目来执行CRUD?
最佳做法是什么?有建筑师吗?感谢。
AK:我在n-layered architecture - BLL, DAL and interfaces. What is best practice?看了你的帖子。
让我引用你的话
以“人”为例:考虑不同的数据 与人相关的操作(获取单个人的所有数据) 人,许多人的浅层数据集合,CRUD 操作,搜索等) - 然后沿逻辑设计接口 分组。
我想了解这一点。所以,你说的是
在BLL项目中,我们有这个Person类。
同样在BLL项目中,我们有一个声明所有数据的接口 我们将需要Person对象的操作方法。
然后在DAL项目中,我们具体实现了 我们在BLL中定义的接口。
这听起来对你不对吗?感谢。
答案 0 :(得分:1)
虽然盲目地将相同的架构应用于每个解决方案/项目是危险的;我的标准/默认方法是这样的:
高级
您的具体信息
其他笔记
答案 1 :(得分:1)
您需要将具体数据访问与业务层分开,最好是使用实体(域模型)和存储库接口创建业务层。
然后创建数据访问的具体实现,其中包括使用fluentnhibernate进行数据访问的映射和具体存储库。
Buessiness | _实体 | - Student.cs | - Course.cs | - Faculty.cs | _ RepositoryInterfaces | - IStudentRepository.cs | - ICourseRepository.cs
DAL(混凝土 - 使用FluentNHibernate) | _映射 | - Mappings.cs | _存储库 | - StudentRepository.cs | - CourseRepository.cs