NHibernate中的引用会导致更多的内存消耗

时间:2012-09-10 11:05:07

标签: c# nhibernate memory relationship

我正在尝试使用我在其网站上找到的教程学习Fluent-NHibernate:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started

在此代码中,您可以看到对Store对象的引用:

public class Employee
{
   public virtual int Id { get; private set; }
   public virtual string FirstName { get; set; }
   public virtual string LastName { get; set; }
   public virtual Store Store { get; set; }//<-- here
}

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; }
}

假设我将拥有10000名员工(或更多),并且每个人都会引用商店实例。如果我们只有一个商店和许多参考商店会发生什么。每个元素是否只存储对商店对象的内存的引用,或者它们是否会存储单个对象而导致大量内存被占用?

2 个答案:

答案 0 :(得分:2)

这取决于你如何使用ISession。在单个ISession中,您将只获得Store的一个实例。不同的ISessions将具有Store的不同实例。

答案 1 :(得分:0)

是。每个Employee实例只有一个引用实例。