在使用NHibernate时,我发现有许多陷阱,看似微不足道,如果不明白,就会阻碍我们的开发,乃至于影响到开发效率,成为开发的拦路虎。
1、首先是映射的实体类,例如Customer类。由于我采用DDD的方式,将领域逻辑也放入到该实体类中,且通过构造函数传入了一个Repository对象,代码如下:
public class Customer {
private ICustomerRepository m_repository;
public virtual int CustomerID {
get;
set;
}
public virtual string Name {
get;
set;
}
public virtual DateTime Birthday {
get;
set;
}
public virtual string Address {
get;
set;
}
public Customer(ICustomerRepository repository) {
m_repository = repository;
}
public Customer Load(int customerID) {
return m_repository.Load(customerID);
}
}
private ICustomerRepository m_repository;
public virtual int CustomerID {
get;
set;
}
public virtual string Name {
get;
set;
}
public virtual DateTime Birthday {
get;
set;
}
public virtual string Address {
get;
set;
}
public Customer(ICustomerRepository repository) {
m_repository = repository;
}
public Customer Load(int customerID) {
return m_repository.Load(customerID);
}
}