Asp.net 在EF代码中首先定义语言特定实体的有效方法

Asp.net 在EF代码中首先定义语言特定实体的有效方法,asp.net,entity-framework,localization,code-first,Asp.net,Entity Framework,Localization,Code First,我正在开发一个多语言的ASP.NET web应用程序,它首先使用实体框架代码实现数据持久性。例如,我为我的“项目”实例定义了一个实体 现在我想添加另一种语言支持,允许管理员为不同的语言项目描述保存不同的字符串数据。现在我必须继续添加属性,比如 public string Name_Es {get; set;} public string Descr_Es {get; set;} 并提供特定的逻辑以允许这些特定于语言的字段的填充 有没有一种更有效的方法可以首先通过EF代码保存特定于语言的数据?

我正在开发一个多语言的ASP.NET web应用程序,它首先使用实体框架代码实现数据持久性。例如,我为我的“项目”实例定义了一个实体

现在我想添加另一种语言支持,允许管理员为不同的语言项目描述保存不同的字符串数据。现在我必须继续添加属性,比如

public string Name_Es {get; set;} 
public string Descr_Es {get; set;}
并提供特定的逻辑以允许这些特定于语言的字段的填充


有没有一种更有效的方法可以首先通过EF代码保存特定于语言的数据?

一旦我们完成了一个获取量更小的项目。实体是这样的,

   public class Project
    {     
        public Guid Id {get; set;}
        public string Name {get; set;}
        public string Descr {get; set;}   
        publis List<Translation>  NameTranslations{get;set;}
    }

    public Translation
    {
      public int Id {get;set;}
      public int LanguageId {get;set;}
      public string Text{get;set;}
    }

与您的方法相比,这种方法的优点是,我们不需要为每种语言的每一个所需的列设置列。如果你想添加新的语言,只需添加新的枚举值,而不需要对域对象进行任何更改。

我们曾经做过一个获取量更小的项目。实体是这样的,

   public class Project
    {     
        public Guid Id {get; set;}
        public string Name {get; set;}
        public string Descr {get; set;}   
        publis List<Translation>  NameTranslations{get;set;}
    }

    public Translation
    {
      public int Id {get;set;}
      public int LanguageId {get;set;}
      public string Text{get;set;}
    }
与您的方法相比,这种方法的优点是,我们不需要为每种语言的每一个所需的列设置列。如果您想添加新语言,只需添加新的枚举值,而不需要更改域对象

   public class ProjectDto
    {     
        public Guid Id {get; set;}
        public string Name {get; set;}
        public string Descr {get; set;}   
    }