我发现自己有很多代表查询表的类,例如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。
答案 0 :(得分:2)
在这种情况下,创建一个包含Id
和Name
的基类。
public class BaseEntity
{
public Guid Id { get; set; }
public string Name { get; set; }
}
,您的Gender
将成为:
public class Gender : BaseEntity
{
...
}
要避免您不想要的映射继承,请始终遵循以下规则:
OnModelCreating
未映射BaseEntity
- 仅映射派生类DbSet
BaseEntity
,仅适用于派生类型EntityTypeConfiguration
BaseEntity
如果遵循这些规则,继承将仅在您的应用程序中,而不在您的数据库中。