我剛剛閱讀了有關(guān)通用實體基類的文章。簡單地說,如果我沒記錯的話,后面的主要思想是在一個接口中收集所有通用的,非實體專用的字段,而不是在主要實體中實現(xiàn)它。這將是TL:DR;讓我們看一些代碼。這是基礎(chǔ)實體接口,是對另一個接口的通用實現(xiàn)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; }}這是它在抽象類中的實現(xiàn)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; }}似乎很清楚也很容易理解,但是關(guān)于Id的一點。 我的問題是(是的,最后)為什么在IEntity和IEntity接口中都有兩個不同的Id屬性?什么是新的關(guān)鍵字做什么呢?這是怎么回事?:O
- 1 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消