変換テーブルを参照するTextID列を持つテーブルがたくさんあります。翻訳テーブルには、目的の言語に翻訳されたテキストを取得するためのLanguageIDも必要です。私の問題は、データベースにLanguageIDがなく、システムで事前定義されており、Fluent APIを使用してLanguageIDを定義する方法がわからないことです。つまり、これが私のモデルになる可能性があります。
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外部キーを使用して1つの翻訳のみを取得したい-LanguageIDは静的であり、コンテキストで事前定義されています。
既存のDBスキーマを変更できません。コードでLanguageIDフィールドをマップする必要がなく、システムパラメーターのようにマッピング内で使用するだけでよい場合は完璧です。EFでも可能ですか?