複数の言語をサポートするデータベースを使用しています。問題は、情報を取得するために自分の言語をクエリに入力する必要があることですが、それは問題ありませんが、その情報を保存する最適な方法は何でしょうか。
もちろん、クライアント側ではCookieに保存されます。今私が考えることができる唯一の方法は、クラスでグローバル変数を作成し、それを関数で使用することです。それが唯一の方法ですか?
サンプルコード
private string lang = Infrastructure.UserSettings.Language(); // I don't have this implemented yet
[HttpGet]
public dynamic List()
{
string lang = "English"; // That's why I set it here manually for testing
var items = _db.Items.OrderByDescending(x => x.ID).Select(x => new
{
ID = x.ID,
Price = x.Price,
Name = x.ItemTranslations.Where(y => y.Language.Name == lang).Select(y => y.Name).SingleOrDefault(),
Category = new {
ID = x.Category.ID,
Name = x.Category.CategoryTranslations.Where(y => y.Language.Name == lang).Select(y => y.Name).SingleOrDefault()
}
});
return items;
}
私の質問:これはこれを行う良い方法ですか、それとももっと最適な方法がありますか?