多言語をサポートする ASP.NET MVC3 プロジェクトを開発しています。データベースにすべての単語を保持し、セッション値に従って選択します。現在、次のように値を取得します。
public ActionResult Index()
{
string lang = (string)System.Web.HttpContext.Current.Session["Language"];
if (lang == "Tr" || lang == null)
{
ViewBag.Admin = db.Words.Find(10).Tr;
}
else if(lang == "En")
{
ViewBag.Admin = db.Words.Find(10).En;
}
return View();
}
現在のWordの種類:
public class Word
{
public int ID { get; set; }
public string Tr { get; set; }
public string En { get; set; }
}
ただし、言語の数が増えるため、現在の方法ではこれらを手動で追加する必要があります。私が欲しいのは、単語の「セッション」言語形式を次のように動的に取得することです(疑似):
ViewBag.Admin = db.Words.Find(10)."Session[Language]";
簡単なはずですが、これを見つけるための適切なキーワードが見つかりませんでした。どうすればこれを達成できますか?
編集: 次のような SQL 文字列を実行する方法が必要です。
String lang = (string)System.Web.HttpContext.Current.Session["Language"];
ViewBag.MyWord = ExecuteSQL.("SELECT " + lang + " FROM Words WHERE ID = " + 10 + " ");
編集2 :次の行を試しました:
ViewBag.Admin = db.Words.SqlQuery("SELECT" +
(string)System.Web.HttpContext.Current.Session["Language"] +
"FROM Words WHERE ID=10");
ただし、この出力は画面上のクエリ自体です。(SELECT Tr FROM Words WHERE ID=10)