文章出處
文章列表
這是今天在實際開發中遇到的一個問題,需求是查詢未分類的博文列表(未加入任何分類的博文),之前是通過存儲過程實現的,今天用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)));
文章列表
全站熱搜