Ripas Filqadar
Ripas Filqadar

Reputation: 35

Scope on ASP .NET Core entity framework

I want to use scope (like scope on rails, below) on .NET core.

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

Does .NET Core have scopes like rails?
Or what is best practice to default query on netcore model, like scope on rails?

Upvotes: 2

Views: 1050

Answers (1)

Tseng
Tseng

Reputation: 64259

You can use EF Core's Global Query Filters to achieve this.

From the doc examples:

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

To disable it on a single query, use .IgnoreQueryFilters() Linq extension method.

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

Upvotes: 2

Related Questions