文章出處

這是今天在實際開發中遇到的一個問題,需求是查詢未分類的博文列表(未加入任何分類的博文),之前是通過存儲過程實現的,今天用EF實現了,在這篇博文中記錄一下。

博文的實體類BlogPost是這樣定義的:

public class BlogPost
{
    public int Id { get; set; }

    public string Title { get; set; }

    //....

    public ICollection<BlogCategory> Categories { get; set; }
}

分類的實體類BlogCategory是這樣定義的:

public class BlogCategory
{
    public int CategoryId { get; set; }

    public string Title { get; set; }

    //...

    public ICollection<BlogPost> Posts { get; set; }
}

EF(Entity Framework)中多對多關系是這樣定義的:

modelBuilder.Entity<BlogPost>()
    .HasMany(p => p.Categories)
    .WithMany(c => c.Posts)
    .Map(link =>
    {
        link.MapLeftKey("PostId");
        link.MapRightKey("CategoryId");
        link.ToTable("blog_links");
    });

BlogPost與BlogCategory是多對多關系,現在的需求是查詢與BlogCategory沒有關系的BlogPost,這個LINQ查詢代碼該如何寫呢?
。。。
今天太忙,沒時間寫更多文字了,直接上代碼吧:

.Where(p => !p.Categories.Any(c => c.Posts.Select(cp => cp.Id).Contains(p.Id)));

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()