此课程来自http://wiki.fluentnhibernate.org/Getting_started 它有一些逻辑,我认为这违反了Single Responsibility Principle,您如何看待,您将如何解决这个问题?
困扰我的另一件事是为什么在nhibernate中总是使用IList而不是IEnumerable,它的功能较少?
public class Store
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual IList<Employee> Staff { get; set; }
public Store()
{
Products = new List<Product>();
Staff = new List<Employee>();
}
public virtual void AddProduct(Product product)
{
product.StoresStockedIn.Add(this);
Products.Add(product);
}
public virtual void AddEmployee(Employee employee)
{
employee.Store = this;
Staff.Add(employee);
}
}
答案 0 :(得分:1)
在我看来,这并不违反SRP原则。而且,正如Paco所说,它仍然是POCO类。 POCO并不意味着对象应该只包含数据。
然而,正如你所提到的,我会改变IList&lt;&gt;到IEnumerable&lt;&gt;在我的收藏品上,让私人收藏家(收藏品)。对于nhibernate来说,这不是一个问题。在我看来,使用这些“添加”方法是处理模型上集合的首选方法(blog post about that)。