Nhibernate3.0cookbook学习笔记一个基类实体类-创新互联

公司专注于为企业提供网站设计制作、成都网站建设、微信公众号开发、商城网站定制开发,微信小程序,软件定制设计等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联更提供一系列网站制作和网站推广的服务。 src="/upload/otherpic7/copycode.gif">
using System;

namespace Eg.Core
{
public abstract class Entity
    {

public virtual TId Id { get; protected set; }
protected virtual int Version { get; set; }

public override bool Equals(object obj)
        {
return Equals(obj as Entity);
        }

private static bool IsTransient(Entity obj)
        {
return obj != null &&
                   Equals(obj.Id,default(TId));
        }

private Type GetUnproxiedType()
        {
return GetType();
        }

public virtual bool Equals(Entity other)
        {
if (other == null)
return false;

if (ReferenceEquals(this, other))
return true;

if (!IsTransient(this) &&
                !IsTransient(other) &&
                Equals(Id, other.Id))
            {
var otherType = other.GetUnproxiedType();
var thisType = GetUnproxiedType();
return thisType.IsAssignableFrom(otherType) ||
                       otherType.IsAssignableFrom(thisType);
            }

return false;
        }

public override int GetHashCode()
        {
if (Equals(Id, default(TId)))
return base.GetHashCode();
return Id.GetHashCode();
        }

    }

public abstract class Entity : Entity
    {

    }

}

分享标题:Nhibernate3.0cookbook学习笔记一个基类实体类-创新互联
URL地址:http://azwzsj.com/article/ijhco.html