に参加します特定のビュッフェに属し、レシピカテゴリを含むすべてのレシピ。が働いていない含めるには、私は、エンティティ(多対多が、私もunnessecary小道具を削除)を次している例として、エンティティ
public IList<Recipe> GetRecipes(int buffetId)
{
return _dbContext.BuffetRecipes
.Where(item => item.BuffetId == buffetId)
.Include(item => item.Recipe)
.ThenInclude(item => item.Category)
.Select(item => item.Recipe)
.ToList();
}
私が得たリストは常にprop Category = nullのレシピを返します。 Select()と一緒にInclude()の作業を行うソリューションが見つかりませんでした...
何が間違っていますか?
UPDATE:
私はそれがこのように動作させることができます...しかし、私の気持ちは、私は(2 ToListメソッドを持っているので、これは良い方法ではありませんと言う)を呼び出します...しかし、今私は、カテゴリ私の結果に含まれています:
public IList<Recipe> GetRecipes(int buffetId)
{
return _dbContext.BuffetRecipes
.Where(item => item.BuffetId == buffetId)
.Include(item => item.Recipe)
.ThenInclude(item => item.Category)
.ToList()
.Select(item => item.Recipe)
.ToList();
}
なぜ、 'Buffet'と' Recipe'の両方のコレクションではなく、 'BuffetRecipe'クラスでやっていますか?あなたは2人の間を移動する能力を失います。 'BuffetRecipe'クラスは、多対多の関係を管理するためにC#で必要としないテーブルとして作成されます。 – krillgar
EFコアでは、結合エンティティなしの多対多はありません。そのため、新しいEFコアでこのような関係を実現するために、BuffetRecipeエンティティを手動で作成する必要があります... – Simon
私は、 includeは最後にSelectを使わずに作業しています。これは設計によるものですか? – Simon