मैं इस उदाहरण जो मैं http://ef.readthedocs.org/en/latest/modeling/relationships.htmlकई-से-अनेक इकाई की रूपरेखा में क्वेरी 7
class MyContext : DbContext
{
public DbSet<Post> Posts { get; set; }
public DbSet<Tag> Tags { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PostTag>()
.HasKey(t => new { t.PostId, t.TagId });
modelBuilder.Entity<PostTag>()
.HasOne(pt => pt.Post)
.WithMany(p => p.PostTags)
.HasForeignKey(pt => pt.PostId);
modelBuilder.Entity<PostTag>()
.HasOne(pt => pt.Tag)
.WithMany(t => t.PostTags)
.HasForeignKey(pt => pt.TagId);
}
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public List<PostTag> PostTags { get; set; }
}
public class Tag
{
public string TagId { get; set; }
public List<PostTag> PostTags { get; set; }
}
public class PostTag
{
public int PostId { get; set; }
public Post Post { get; set; }
public string TagId { get; set; }
public Tag Tag { get; set; }
}
से मिला अब मेरे सवाल का कैसे मैं अपने क्वेरी पदों दिया करने के लिए TagId का निर्माण होता है अनुसरण कर रहा हूं? कुछ ऐसा:
public List<Post> GetPostsByTagId(int tagId)
{
//linq query here
}
कृपया ध्यान रखें कि यह ईएफ 7 है।
यह सुनिश्चित नहीं है कि यह कैसे काम करता है, क्योंकि मैं ईएफ के लिए नया हूं, लेकिन इस क्वेरी ने सबसे कुशल एसक्यूएल कथन बनाया है: 'पोस्टटैग इनर जॉइन पोस्ट ...' जहां अन्य उत्तरों के परिणामस्वरूप पूरी तरह से घृणित नेस्टेड सेक्शन का विवरण दिया गया है: 'पोस्ट से चुनें जहां (चयन करें जब EXISTS (पोस्टटैग से 1 चुनें ...क्या आप समझा सकते हैं कि क्या हो रहा है? –
निश्चित रूप से, मैंने अपना जवाब अपडेट कर दिया है – octavioccl