カテゴリのブレッドクラム形式を生成する機能がありますRoot->Children
。私の見解でそれを使用すると、それは機能し、その仕事をするので機能します。ただし、LINQ クエリ内でキャストすることはできません。
この特定の関数をLINQクエリ内でキャストする方法を誰かが説明できますか? foreach
データを取得してからループに設定しようとしましたが、プロパティは読み取り専用であると言われました。
関数はInfrastructure.CategoryHelpers.Breadcrumbs({id})
それを返しstring
ます。
呼び出し機能
public dynamic List()
{
var categories = _db.Categories.Select(x => new {
ID = x.ID,
Breadcrumbs = Infrastructure.CategoryHelpers.Breadcrumbs(x.ID, -1, ""), // this method cannot be translated into a store expression
Name = x.Name,
ItemCount = x.Items.Count
});
foreach (var c in categories)
{
// c.Breadcrumbs = Infrastructure.CategoryHelpers.Breadcrumbs(c.ID); // Value is read only
}
return Json(categories, JsonRequestBehavior.AllowGet);
}
エラー
LINQ to Entities はメソッド 'System.String Breadcrumbs(Int32, Int32, System.String)' メソッドを認識せず、このメソッドはストア式に変換できません。