从本地化数据库获取数据的最佳方法

时间:2014-07-15 08:21:37

标签: c# sql-server entity-framework database-design entity-framework-6

我创建了表结构,使状态在数据库中本地化:

Status {StatusId, Value} -- Value in this table is status value in default language
StatusTranslation {StatusId, Language, TrasnlationValue} -- StatusId and Language are combined key

但是我很难在实体框架中完成这项工作 当默认语言很容易Status.ToList()但是当我需要翻译时,我会转到get方法de-CH,但我无法返回已翻译的状态。
使用实体框架映射此图的最佳方法是什么? 我认为我的一些方法适用于这种情况,但最终我发现它们不适用 这是代码中的对象:

public class Status 
    {
        public int StatusId{ get; set; }
        public string Value{ get; set; }
        public virtual ICollection<StatusTranslation > StatusTranslations { get; set; }
    }
public class StatusTranslation 
    {
        public int StatusId{ get; set; }
        public string Language{ get; set; }
        public string TrasnlationValue{ get; set; }

        public virtual Status Status { get; set; }
    }



更新

var statuses = from c in context.Statuses
           join t in context.StatusTranslations
               on c.StatusId equals t.StatusId
           where t.Language == language

var statuses = from t in context.StatusTranslations
           where t.Language == language
           select t.Status; 

两人都以默认形式(默认语言)返回状态 返回参数应该是IEnumerable<Status> meybe这是不可能的。

所以我可以回归IEnumerable<Status>IEnumerable<StatusTranslation>但是这不是一个函数或者有希望吗?

0 个答案:

没有答案