刚开始使用NHibernate和Fluent NHibernate开发一个项目用于映射,我很困惑。由于该项目在接下来的几个月会变得更加复杂,我希望将代码结构化为逻辑层,例如持久层和业务逻辑层。
我有一个名为Patient的业务对象,其中包含逻辑和验证。
如果是1,是不是我的业务逻辑层和持久层相同? 如果2,两层是单独的项目,我应该BL项目包含Patient对象和一些IPatientDAO和PL有PatientDAO对象吗?
或者我做错了吗? : - )
答案 0 :(得分:3)
您应该使用Fluent NHibernate映射您的实体,因为这是您从数据库结构映射到对象模型的位置。
至于DAO,这是个人品味的问题。一般人喜欢使用某种类型的DAO(尽管人们喜欢这些天称它们为存储库)。这些类将利用NHibernate ISession从数据库读取/写入数据。通常,当前使用这些方法的方法是定义一个通用接口Get<T>(int id)
,GetAll<T>()
,'Delete()type methods defined to handle CRUD ops, with
T`是实体类型。
对于哪一层,NHibernate是你的持久层的95%-100%。你可以在它上面添加一些你自己的抽象来创建一个让你开心的API,但这完全取决于你。