私はこれに何が欠けているのかわかりません:私はEDMでこの関係を持っています-(まだ写真をロードできません)
Category_1_ _ many RecipeCategory_ many _ _1_Recipe
基本的に、すべてのレシピには1つ以上のカテゴリがあり、すべてのカテゴリには0以上のレシピを含めることができます
これが私のコードです:
private void LoadData()
{
List<Category> Categories = new List<Category>();
List<Recipe> Recipes = new List<Recipe>();
var ctx = new MaWEntities();
var query = from x in ctx.Categories select x;
Categories = query.ToList<Category>();
foreach (Category c in Categories)
{
TreeViewItem TVP = new TreeViewItem() { Header = c.CategoryName.ToString() };
var qq = from xx in ctx.RecipeCategories.Where(o => o.CategoryId == c.CategoryId) select xx;
foreach (var rc in qq)
{
TreeViewItem TVC = new TreeViewItem() { Header = rc.Recipe.RecipeName.ToString() };
TVP.Items.Add(TVC);
//TVP.IsExpanded = true;
}
}
}
私が達成しようとしているのは、親ノードがカテゴリ名で、子ノードがレシピ名であるツリービューです。Linqを使用して、ベーステーブル(RecipeからRecipeCategory)からリレーショナルテーブルにドリルインする方法を知っています。カテゴリテーブルに再度移動する方法も必要です。また、カテゴリにレシピがない場合でも、ツリービューでカテゴリ名を親として表示したいことにも言及する必要があります。