如何在代码优先中避免重复的数据结构
本文关键字:数据结构 代码 | 更新日期: 2023-09-27 18:28:02
我发现自己有很多表示查找表的类,如JobTitle和Language,它们都共享相同的结构,即
public Guid Id { get; set; }
public string Name { get; set; }
我如何避免重复这种结构,而不引入额外的属性,例如具有与上面相同结构的复杂类型的IdName,例如
public class Gender
{
public IdName Inner { get; set }
}
我想避免引用Gender.Inner.Name,而只引用Gender.Name.
在这种情况下,创建一个包含Id
和Name
的基类。
public class BaseEntity
{
public Guid Id { get; set; }
public string Name { get; set; }
}
您的Gender
将变为:
public class Gender : BaseEntity
{
...
}
为了避免您不希望的映射继承,请始终遵循以下规则:
OnModelCreating
不映射BaseEntity
-只映射派生类- 您的上下文不包含
BaseEntity
的DbSet
,仅适用于派生类型 - 您没有为
BaseEntity
注册EntityTypeConfiguration
如果您遵循这些规则,那么继承将仅在应用程序中,而不在数据库中。