Biorąc pod uwagę hierarchii obiektówDołącz Wnuki w EF Zapytanie
public class Parent
{
public int Id { get; set; }
public virtual Child Child { get; set; }
}
public class Child
{
public int Id { get; set; }
public virtual GrandChild GrandChild { get; set; }
}
public class GrandChild
{
public int Id { get; set; }
}
i kontekst DB
public class MyContext : DbContext
{
public DbSet<Parent> Parents { get; set; }
}
Można to dzieci i wnuki pomocą Lambda składni (using System.Data.Entity
) tak:
using (MyContext ctx = new MyContext())
{
var hierarchy =
from p in ctx.Parents.Include(p => p.Child.GrandChild) select p;
}
Składnia Lambda zapobiega zerwaniu zapytania, jeśli nazwy klas są następnie zmieniony. Jednakże, jeśli Parent
ma ICollection<Child>
tak zamiast:
public class Parent
{
public int Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
składnia Lambda już nie działa. Zamiast tego można użyć składni wyrażenie:
var hierarchy = from p in ctx.Parents.Include("Children.GrandChild") select p;
jest ciąg składni jedyną opcją, czy jest jakiś alternatywny sposób na wykorzystanie składni Lambda w tej sytuacji?
upvote. Dziękujemy za uwzględnienie linku MSDN. – granadaCoder