为了账号安全,请及时绑定邮箱和手机立即绑定

通用实体基类

通用实体基类

C#
缥缈止盈 2021-05-17 16:17:30
我刚刚阅读了有关通用实体基类的文章。简单地说,如果我没记错的话,后面的主要思想是在一个接口中收集所有通用的,非实体专用的字段,而不是在主要实体中实现它。这将是TL:DR;让我们看一些代码。这是基础实体接口,是对另一个接口的通用实现public interface IEntity : IModifiableEntity{    object Id { get; set; }    DateTime CreatedDate { get; set; }    DateTime? ModifiedDate { get; set; }    string CreatedBy { get; set; }    string ModifiedBy { get; set; }    byte[] Version { get; set; }}public interface IEntity<T> : IEntity{    new T Id { get; set; }}这是它在抽象类中的实现public abstract class Entity<T> : IEntity<T>{    [Key]    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]    public T Id { get; set; }    object IEntity.Id    {        get { return this.Id; }    }    public string Name { get; set; }    private DateTime? createdDate;    [DataType(DataType.DateTime)]    public DateTime CreatedDate    {        get { return createdDate ?? DateTime.UtcNow; }        set { createdDate = value; }    }    [DataType(DataType.DateTime)]    public DateTime? ModifiedDate { get; set; }    public string CreatedBy { get; set; }    public string ModifiedBy { get; set; }    [Timestamp]    public byte[] Version { get; set; }}似乎很清楚也很容易理解,但是关于Id的一点。 我的问题是(是的,最后)为什么在IEntity和IEntity接口中都有两个不同的Id属性?什么是新的关键字做什么呢?这是怎么回事?:O
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信