考慮以下場景:
1、資料庫表里均設定了洗掉標識欄位IS_DELETE,要求Entityframework查詢出來的資料都是IS_DELETE=False
2、對于某張表的資料需要增加默認的過濾條件(如 where、in、like),以實作資料訪問權限的控制
可能有如下方法(請大神指點補充):
1、直接在Context中進行設定。 但如果context是腳手架生成,或者做了分離,這樣很不靈活,耦合度高。
2、使用AutoMapper等工具,在轉換時過濾。 問題是這樣會先查出全部資料,資料量大的時候有問題。
3、依賴注入。問題是不會寫,哈哈哈,使用的是EntityFramework.Core 1.1版本
歡迎討論交流
uj5u.com熱心網友回復:
這問題跟依賴注入沒關系吧?這是整套解決方案
uj5u.com熱心網友回復:
升級得了,還1.1,現在都2.2了,有一個 QueryFilteruj5u.com熱心網友回復:
現在都3.1了有些配置還得改uj5u.com熱心網友回復:
定義一個介面包含IS_DELETE 屬性,所有物體都實作這個介面,然后給 IQueryable<TEntity> 寫個擴展方法,泛型約束成之前定義的介面,在這個擴展方法里面添加過濾條件,然后回傳 IQueryable<TEntity> 之后查詢都用這個擴展查uj5u.com熱心網友回復:
在Service的基類中實作你要查詢的介面。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/6819.html
標籤:.NET技術前瞻
