C# 如何首先避免代码中重复的数据结构?

C# 如何首先避免代码中重复的数据结构?,c#,.net,entity-framework,entity-framework-4.1,ef-code-first,C#,.net,Entity Framework,Entity Framework 4.1,Ef Code First,我发现自己有很多表示查找表的类,比如JobTitle和Language,它们都共享相同的结构,即 public Guid Id { get; set; } public string Name { get; set; } 如何避免重复此结构,而不引入与上述结构相同的额外属性,例如复杂类型的IdName,例如 public class Gender { public IdName Inner { get; set } } 我希望避免引用Gender.Inner.Name,而只引用Ge

我发现自己有很多表示查找表的类,比如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; }    
}
您的
性别将成为:

public class Gender : BaseEntity
{
    ...
}
要避免您不希望的映射继承,请始终遵循以下规则:

  • OnModelCreating
    不映射
    BaseEntity
    -只映射派生类
  • 您的上下文不包含
    BaseEntity
    DbSet
    ,仅包含派生类型
  • 您没有为
    BaseEntity注册
    EntityTypeConfiguration

如果您遵循这些规则,继承将只在您的应用程序中,而不在数据库中。

谢谢@Ladislav。我从来没有想过继承只能保存在应用程序中。