这不是';t将Castle Proxies与NHibernate一起使用时返回相同的引用

本文关键字:返回 引用 一起 NHibernate Proxies Castle 这不是 | 更新日期: 2023-09-27 18:25:03

我遇到了一些问题,当使用nhibernate的castle代理时,返回"this"会以某种方式返回不同的引用/类型。Castle为2.5.2.0,NHibernate为3.1.0.4000

public class Node
{
    public int Id { get; set; }
    public Node Me() { return this; }
}
public static void SomeMethod()
{
    var node = session.Load<Node>(1)
    var me = node.Me()
    //ReferenceEquals(node, me) // false
    //node == me // false
    //node.GetType().Name // NodeProxy
    //me.GetType().Name // Node
    me.Id = 88;
    // node.Id == 88 // true
}

这不是';t将Castle Proxies与NHibernate一起使用时返回相同的引用

这是预期的行为。请参阅我的博客文章,破解懒惰加载的继承。