【发布时间】:2020-07-23 21:12:54
【问题描述】:
我在所有表格中都使用了 IsActive 列。当它的 false 没有返回时,我在 OnModelCreating 中应用了过滤器。
但我将其更改为 IsDeleted 列,因此当 IsDeleted 为 true 时,不会从 DB 返回任何内容。
这是我的过滤器代码 sn-p。但问题是当 IsDeleted 为真时,我从数据库中获取数据。但是我想当 IsDeleted 为 false 时,我会从数据库中获取数据。
var isDeletedProperty = entityType.FindProperty("IsDeleted");
if (isDeletedProperty != null && isDeletedProperty.ClrType == typeof(bool))
{
var parameter = Expression.Parameter(entityType.ClrType, "p");
var filter = Expression.Lambda(Expression.Property(parameter, isDeletedProperty.PropertyInfo), parameter);
entityType.SetQueryFilter(filter);
}
【问题讨论】:
标签: c# .net-core entity-framework-core expression-trees