EF Core全局查询筛选器
目录
概述
全局查询筛选器:EF Core 会自动将这个查询筛选器应用于涉及这个实体类型的所有 LINQ 查询。
场景:软删除、多租户。
什么是软删除?
逻辑删除,并不是真正地从数据库中把记录删除,而是通过特定的标记方式在查询的时候将此记录过滤掉。虽然数据在界面上已经看不见,但是数据库还是存在的。
用法
添加全局查询筛选器
在BookConfig中添加全局查询筛选器
builder.HasQueryFilter(b=>b.IsDeleted==false);
运行代码,查询会自动加上全局查询条件
static async Task Main(string[] args)
{
using (MyDbContext ctx = new MyDbContext())
{
foreach (var b in ctx.Books.Take(6))
{
Console.WriteLine($"{b.Id},{b.Price}");
}
}
}
禁用全局查询筛选器
用IgnoreQueryFilters()禁用全局查询筛选器
static async Task Main(string[] args)
{
using (MyDbContext ctx = new MyDbContext())
{
foreach (var b in ctx.Books.IgnoreQueryFilters().Take(6))
{
Console.WriteLine($"{b.Id},{b.Price}");
}
}
}
原文地址:https://blog.csdn.net/Anoxia_li/article/details/145216645
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!