我想为我的实体实现一个基类,所以我不必在每个实体中定义一个 Guid Id 字段。我创建了以下基类:
public abstract class IdableEntity
{
[Key]
public Guid Id { get; set; }
protected IdableEntity()
{
Id = Guid.NewGuid();
}
}
这样做是因为据我所知,在这种情况下我只能使用 [DatabaseGenerated...] 属性,因为我必须转到数据库并更改所有表的 ID 字段才能将 (newid()) 调用作为“初始化器”。如果一个人有很多实体类——因此有很多表,这是非常不方便的。
但是现在,我将不得不通过调用每个子类中的基本构造函数来清除构造函数,对吗?如果是这样,它甚至值得吗?