这是一个困扰我一段时间的Nhibernate问题......
如果我将简单的订单输入域建模为:
public class Order: BaseEntity
{
public virtual Customer Customer {get; set;}
public Order(Customer customer)
{
...
}
}
public class Customer: BaseEntity
{
public virtual string Name {get; set;}
public virtual Order CreateOrder()
{
return new Order(this);
}
}
虽然上面的代码可以创建一个Order实例,但新创建的实例不会持久保存到DB,除非:
所以,这让我相信我的NHibernate POCO类本身不应该包含任何业务规则(并且应该只保留属性和构造函数),但是域模型上面的服务层应该是逻辑应该存在。据推测,此服务层将通过依赖注入来接收其持久性功能。
任何人都在关注确认/否认我在POCO模型中不应存在业务方法的断言?
谢谢,
大卫
答案 0 :(得分:0)
域模型中的业务逻辑是首先拥有模型的重点。
您可以使用Nhibernate的级联功能,如果拥有该订单的客户持续存在,您的订单将自动保留。