我有很多表都有 TextID 列,它指的是翻译表。翻译表还需要 LanguageID 以获取所需语言的翻译文本。我的问题是我的数据库中没有 LanguageID,它是在系统中预定义的,我不知道如何使用 Fluent API 定义它,即这可以是我的模型:
public partial class MyEntity
{
public short ID { get; set; }
public Nullable<int> TextID { get; set; }
[NotMapped]
public Nullable<int> LanguageID { get; set; }
public virtual TEXT_TRANSLATION Translation { get; set; }
}
和翻译表:
public partial class TEXT_TRANSLATION
{
[Key, Column(Order = 0)]
public int TextID { get; set; }
[Key, Column(Order = 1)]
public int LanguageID { get; set; }
public string TranslatedText { get; set; }
}
基本上我需要这样的导航:
myEntity.Translation.TranslatedText
在使用 SQL 时,我会这样做:
Left Join TEXT_TRANSLATION ON
MyEntity.TextID = TEXT_TRANSLATION.TextID
AND TEXT_TRANSLATION.LanguageID = 1033
基本上我想使用 TextID 外键并只获得一个翻译 - LanguageID 是静态的并且在上下文中预定义。
我无法更改现有的数据库架构。如果我不需要在我的代码中映射 LanguageID 字段,那将是完美的,只需在映射中使用它,就像系统参数一样。EF甚至可以吗?