ASP .NET核心实体框架的范围

时间:2018-03-20 06:20:19

标签: asp.net-core

我想在.NET核心上使用范围(如下面的rails上的范围)。

  scope :published, -> { where(published: true) }

.NET Core是否有像rails这样的范围? 或者在netcore模型上默认查询的最佳做法是什么,比如rails on scope?

1 个答案:

答案 0 :(得分:1)

您可以使用EF Core' Global Query Filters来实现此目的。

来自doc示例:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Post>().HasQueryFilter(p => !p.IsDeleted);
}

要在单个查询中禁用它,请使用.IgnoreQueryFilters() Linq扩展方法。

blogs = db.Blogs
    .Include(b => b.Posts)
    .IgnoreQueryFilters()
    .ToList();