Fluent nhibernate 使用FluentNhibernate时,实体中的属性是否必须是虚拟的?

Fluent nhibernate 使用FluentNhibernate时,实体中的属性是否必须是虚拟的?,fluent-nhibernate,entity,virtual,Fluent Nhibernate,Entity,Virtual,FluentNHibernate使用哪个实体作为实体 我在域(或BLL)中创建了一些实体,例如: public class Role { public long ID { get; protected set; } public string Name { get; set; } public string Description { get; set; } public List<User> Users { get; set; } publ

FluentNHibernate使用哪个实体作为实体

我在域(或BLL)中创建了一些实体,例如:

public class Role
{
    public long ID { get; protected set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public List<User> Users { get; set; }

    public Role()
    {
        Users = new List<User>();
    }
}

但它看起来像有线电视。你这样认为吗?使用FluentNHibernate时如何操作?我不想回到域层,为每个属性添加虚拟属性。

这是使用NHibernate的基本要求;它允许NHibernate生成一个代理类,该类从类中派生,用于延迟加载等

我还没有看到一种删除此要求的方法,但是如果这样做是可能的,这将意味着您不能使用对象和/或属性的延迟加载


);它还提供了一种避免将属性标记为虚拟的方法,尽管我真的建议您不要使用这种方法(标记类以避免延迟加载),因为在大多数情况下延迟加载的好处远远超过使属性虚拟化的成本。

这是使用NHibernate的基本要求;它允许NHibernate生成一个代理类,该类从类中派生,用于延迟加载等

我还没有看到一种删除此要求的方法,但是如果这样做是可能的,这将意味着您不能使用对象和/或属性的延迟加载

);它还提供了一种避免将属性标记为虚拟的方法,尽管我确实建议您不要使用这种方法(标记类以避免延迟加载),因为在大多数情况下延迟加载的好处远远超过使属性虚拟化的成本

public class Role
{
    public virtual long ID { get; protected set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
}