एफई में पोते को शामिल करें वस्तु पदानुक्रमक्वेरी
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; }
}
और डीबी संदर्भ
public class MyContext : DbContext
{
public DbSet<Parent> Parents { get; set; }
}
एक बच्चों और पोते इस तरह लैम्ब्डा वाक्यविन्यास (using System.Data.Entity
) का उपयोग कर शामिल कर सकते हैं को देखते हुए:
using (MyContext ctx = new MyContext())
{
var hierarchy =
from p in ctx.Parents.Include(p => p.Child.GrandChild) select p;
}
लैम्बडा वाक्यविन्यास क्वेरी को तोड़ने से रोकता है यदि कक्षा के नाम बाद में हैं बदल दिया। हालांकि, अगर Parent
एक ICollection<Child>
इस बजाय की तरह है:
public class Parent
{
public int Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
लैम्ब्डा वाक्य रचना नहीं रह गया काम करता है। इसके बजाय, एक स्ट्रिंग सिंटैक्स का उपयोग कर सकते हैं:
var hierarchy = from p in ctx.Parents.Include("Children.GrandChild") select p;
स्ट्रिंग ही एकमात्र विकल्प वाक्य रचना है, या वहाँ इस स्थिति में लैम्ब्डा सिंटैक्स का उपयोग करने के लिए कुछ वैकल्पिक तरीका है?
वोट दें उपयोग करना चाहिए। एमएसडीएन लिंक भी शामिल करने के लिए धन्यवाद। – granadaCoder