使用Castle Proxies和NHibernate时,这不会返回相同的引用

时间:2012-02-17 16:56:12

标签: c# nhibernate castle

我遇到一些麻烦,当使用带有nhibernate的城堡代理时,返回“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
}

1 个答案:

答案 0 :(得分:2)

这是预期的行为。请参阅我的博客文章Hacking lazy loaded inheritance