我想根据语言名称查询翻译,以下是我的ef方案
public class Noun
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<TranslationNoun> Translations { get; set; }
}
public class TranslationNoun
{
public int Id { get; set; }
public string Content { get; set; }
[ForeignKey("LangungeId")]
public Langunge Langunge { get; set; }
public int NounId { get; set; }
[ForeignKey("NounId")]
public Noun Noun { get; set; }
}
public class Langunge
{
public int Id { get; set; }
public string Name { get; set; }
}
这是示例数据
语言:Id = 1,名称=英文
语言:Id = 2,名称= Franche
语言:Id = 3,名称=印度尼西亚
名词:id = 1,名称=“ Makan”;
TranslationNoun :id = 1,Content = Eat,LanguageId = 1,NounId = 1
TranslationNoun :id = 2,Content = Lemenger,LanguageId = 2,NounId = 1
TranslationNoun :id = 3,Content = Mangan,LanguageId = 3,NounId = 1
我想关注名词表,如何查询和显示基于Languange名称的名词翻译:
示例当用户选择英语时,它将返回
名词 1,吃饱,吃完饭
当用户选择印尼语时,它将返回
名词 1,马坎语,曼干语
当用户选择Francje语言时,它将返回
名词 1,马坎,勒芒格
感谢您的关注。
答案 0 :(得分:0)
您可以尝试如下操作:
var result = _dbContext.TranslationNoun.Include(x => x.Noun).Include(x => x.Language)
.Where(x => x.Language.Id == @langParamId)
.Select(x=>new { x.Noun.Id, x.Noun.Name, x.Content});
或者,如果您要根据语言名称进行过滤,则可以使用
.Where(x => x.Language.Name == "@langParamName")