2 回答

TA貢獻1876條經驗 獲得超7個贊
問題在Expression.NotEqual這里:
var parameter = Expression.Parameter(entity.ClrType, "e");
var body = Expression.NotEqual(
Expression.Call(typeof(EF), nameof(EF.Property), new[] { typeof(DateTime?) }, parameter, Expression.Constant("DeletedAt")),
Expression.Constant(null));
modelBuilder.Entity(entity.ClrType).HasQueryFilter(Expression.Lambda(body, parameter));
當前所做的是設置一個類似于此(偽代碼)的全局查詢過濾器(即應用于所有查詢的附加條件):
e => e.DeletedAt != null
這將返回所有軟刪除記錄(在你的情況下沒有),而我想這個想法是返回非軟刪除記錄,即
e => e.DeletedAt == null
所以只需更改Expression.NotEqual為Expression.Equal,問題就會得到解決。

TA貢獻1860條經驗 獲得超9個贊
您需要創建一個查詢以從您的上下文中獲取特定信息。
使用上下文創建對表的查詢。
例如。
var query = context.Students .where(s => s.StudentName == "Bill") .FirstOrDefault<Student>();
查詢.tolist()
- 2 回答
- 0 關注
- 173 瀏覽
添加回答
舉報