53 个问题
您好,根据您的描述,您希望将通用配置应用于所有实体类型。
您可以在 OnModelCreating 方法中使用一些反射、表达式树和 IMutableModel.GetEntityTypes 。 如以下代码所示
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// add your own configuration here
Expression<Func<Entity, bool>> filterExpr = bm => bm.TenantId=="TenantId";
foreach (var mutableEntityType in modelBuilder.Model.GetEntityTypes())
{
// check if current entity type is child of BaseModel
if (mutableEntityType.ClrType.IsAssignableTo(typeof(Entity)))
{
// modify expression to handle correct child type
var parameter = Expression.Parameter(mutableEntityType.ClrType);
var body = ReplacingExpressionVisitor.Replace(filterExpr.Parameters.First(), parameter, filterExpr.Body);
var lambdaExpression = Expression.Lambda(body, parameter);
// set filter
mutableEntityType.SetQueryFilter(lambdaExpression);
}
}
}
希望这对你有所帮助。
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。