日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

EFCore 使用FluntApi配置 全局查询筛选器

發布時間:2023/11/5 C# 87 coder
生活随笔 收集整理的這篇文章主要介紹了 EFCore 使用FluntApi配置 全局查询筛选器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在類中通常會有一個屬性為 IsDel來表示軟刪除或也稱邏輯刪除,這個屬性會導致我們在進行查詢操作時,每一次都要 .where(s=>s.IsDel==false) 非常的麻煩。在使用efCore時可以通過配置查詢篩選器來很好的解決這個問題。

public class SysUser
{
    public long Id { get; set; }
    public bool IsDel { get; set; } = false;
    public DateTime CreateTime { get; set; }
}

我們SysUser類中的IsDel屬性代表我們的軟刪除。

我這里自己的DbContext類名叫MyDbContext

public class MyDbContext:DbContext

在MyDbContext中重寫OnModelCreating方法來對SysUser類進行配置查詢篩選器

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<SysUser>().HasQueryFilter(u => u.IsDel == false);
}

但是由于我們項目中會有很多的實體類所以都寫在這里有些臃腫。
我們可以新建EntityBase文件夾或者項目(具體怎么樣看個人習慣),我這里就新建了文件夾。
在文件夾中新建類,實現IEntityTypeConfiguration<TEntity>接口,來對實體類進行配置

 public class SysUserEntityConfig : IEntityTypeConfiguration<SysUser>
 {
     public void Configure(EntityTypeBuilder<SysUser> builder)
     {
         builder.HasQueryFilter(u => u.IsDel == false);
     }
 }

然后在OnModelCreating方法中,通過 modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly) 方法從當前類所在的程序集中自動應用所有實現了 IEntityTypeConfiguration<TEntity> 接口的實體配置類。

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
}

如果不在同一個程序集,可以使用這種方法

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    var assembly = Assembly.Load("EntityConfigurations(這里要換成自己實際的程序集)");
    modelBuilder.ApplyConfigurationsFromAssembly(assembly);
}

通過這種方式我們就可以在使用efCore時實現全局查詢篩選了。

總結

以上是生活随笔為你收集整理的EFCore 使用FluntApi配置 全局查询筛选器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。