我首先使用ASP.NET MVC和EntityFramework代码.
我正在尝试为将保存到我的数据库的所有对象创建一个基类(这里称为Entity类).
有没有一种在基类中实现IEquatable的好方法?在我的实现中,我检查类型和ID – 这是一个很好的方法吗?这总是会返回最终派生类型吗?中级父母怎么样?
对象
public abstract class Entity : IEquatable<Entity> { public int ID { get; set; } public string Name { get; set; } public Entity(string Name) { this.Name = Name; } public override string ToString() { return Name; } public override int GetHashCode() { return ID.GetHashCode(); } public override bool Equals(object obj) { return this == (Entity)obj; } public bool Equals(Entity other) { return this == other; } public static bool operator ==(Entity x,Entity y) { return Object.ReferenceEquals(x,y) ? true : ((object)x == null || (object)y == null) ? false : (x.GetType() == y.GetType() && x.ID.Equals(y.ID)); } public static bool operator !=(Entity x,Entity y) { return !(x == y); } } public abstract class Content : Entity { public Content(string Name) : base(Name) { } } public class Page : Content { public string Body { get; set; } public Page(string Name) : base(Name) { } } public class User : Entity { public User(string Name) : base(Name) { } }
每个派生对象类型通常都存在于单独的数据库中.但是,会有一些具有中间继承父项的对象共享主键.
假设有三个表包含以下列:
实体
>内容
> ID
>姓名
>页面
> ID
>身体
>用户
> ID
>姓名
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。