Als Beispiel I Einheiten haben folgende (many-to-many, ich unnötigen Requisiten auch entfernt):einschliessen arbeiten nicht mit beitreten Einheiten
public class Buffet
{
public int Id {get; set;}
public string Name {get; set;}
}
public class Recipe
{
public int Id {get; set;}
public string Name {get; set;}
public int CategoryId {get; set;}
public virtual Category Category {get; set;}
}
public class Category
{
public int Id {get; set;}
public string Name {get; set;}
}
Einheit Registriert:
public class BuffetRecipe
{
public int BuffetId {get; set;}
public virtual Buffet Buffet {get; set;}
public int RecipeId {get; set;}
public virtual Recipe Recipe {get; set;}
}
Ich will bekommen Alle Rezepte, die zu einem bestimmten Buffet gehören, enthalten die Rezeptkategorie.
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();
}
Die Liste, die ich bekomme, gibt immer Rezepte mit Prop Category = null zurück. Ich habe keine Lösung gefunden, um das Include() zusammen mit dem Select() zu arbeiten ...
Was mache ich falsch ??
UPDATE:
Ich kann es auf diese Weise funktioniert ... aber mein Gefühl sagt, dass dies kein guter Weg ist, weil ich 2 ToList haben() ruft ... aber jetzt habe ich Kategorie in meine Ergebnisse enthalten :
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();
}
Warum machst du es mit der 'BuffetRecipe'-Klasse statt den Sammlungen auf' Buffet' und 'Rezept'? Sie verlieren die Fähigkeit, zwischen den beiden zu reisen. Ihre 'BuffetRecipe'-Klasse wird als eine Tabelle erstellt, die Sie nicht in C# benötigen, um diese Viele-zu-viele-Beziehung zu verwalten. – krillgar
Im EF-Kern gibt es keine Viele-zu-Viele ohne Join-Entity ... Also muss ich manuell eine BuffetRecipe-Entity erstellen, damit diese Art von Beziehung im neuen EF-Core funktioniert ... – Simon
Ich möchte nur das hinzufügen include funktioniert ohne Select am Ende. Ist das Absicht? – Simon