Code First で EntityFramework 5 を使用しています。
以下のPOCOをご覧ください。
public class Product
{
[Key]
public Guid Id { get; set; }
public string Name {get; set; } // e.g. en=Screwdriver;de=Schraubenzieher;fr=Tournevis
/// <summary>
/// This will always return a valid string.
/// </summary>
/// <param name="languageCode"></param>
/// <returns></returns>
public string GetLocalizedName(string languageCode)
{
...
}
}
ご覧のとおり、各製品には「多言語」の名前があり、この 1 つの文字列内にさまざまな翻訳がすべて含まれています。
LINQ を使用して特定の言語で製品を並べ替える簡単な方法がわかりません。私が探しているコードは次のようになります (英語名に基づいてソートされたコレクションが必要であると仮定します):
var sortedProducts = from p in Context.Products
orderby p.GetLocalizedName("en")
select p;
しかし、.ToList() などでアイテムを反復処理するとすぐには機能しません。店の表現。」
これを解決する方法についてエレガントなアイデアを持っている人はいますか? 結果は再び Product 型の IQueryable でなければなりません (他の方法がない場合は、製品のリストも扱うことができます)。
みんなありがとう!