相关疑难解决方法(0)

Equals和GetHashCode中的延迟加载的NHibernate属性

如何处理以下问题?

我们正在使用延迟加载的NHibernate属性,每当我们调用Equals()或使用GetHashCode()任何属性时,都会延迟加载,可能导致一连串的延迟加载操作.可以使用急切加载作为替代方案,但我认为仅在特定情况下而不是作为一般解决方案.

典型情况如下:

public class AbstractSaveableObject {
    [Id(0, Name = "Id", UnsavedValue = null)]
    [Generator(1, Class = "native")]
    public virtual long? Id { get; set; }
}

[Class(NameType = typeof(ClassA))]
public class ClassA : AbstractSavableObject {
    [Bag(0, Inverse = true, Cascade = "none")]
    [Key(1, Column = "ClassA")]
    [OneToMany(2, ClassType = typeof(ClassB))]
    public virtual ICollection<ClassB> ClassBs { get; set; }
}

[Class(NameType = typeof(ClassB))]
public class ClassB : AbstractSavableObject {

    [ManyToOne(Column = "ClassA")]
    public virtual …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate lazy-loading

5
推荐指数
1
解决办法
3437
查看次数

标签 统计

c# ×1

lazy-loading ×1

nhibernate ×1