私は、ロールに基づいて自分のコンテキストを動的に承認する方法を理解しようとしています。Db一般的なリソース権限
public interface IConstraintResolver
{
Expression<Func<TEntity, bool>>[] GetConstraintsForTypeByRole<TEntity>()
where TEntity : class;
}
public class AuthorizationContext : DbContext
{
protected IConstraintResolver _constraintResolver;
public AuthorizationContext(IConstraintResolver constraintResolver)
{
this._constraintResolver = constraintResolver;
}
public override DbSet<TEntity> Set<TEntity>()
{
var defaultSet = base.Set<TEntity>();
var constraints = this._constraintResolver.GetConstraintsForTypeByRole<TEntity>();
var filteredSet = base.Set<TEntity>().AsQueryable();
foreach(var constraint in constraints)
{
filteredSet = filteredSet.Where(constraint);
}
//how do I apply this back to the innerQueryable
return filteredSet;
}
}
私の質問では、私のクエリ可能性を適用した後、どのようにこれをセットのデフォルトのクエリ可能にすることができますか?
私は古いDbSet hereで
を動作しますが、ネットコアはIDBSet
どのように私はカスタムdbsetを作成することができ、またはどのように私は、既存のdbSetをフィルタリングすることができますが含まれていないgystを見つけましたか?
@SlavaUtesinovはそのまだ省と連携し、変更の追跡などに接続します、これをフィルタリングするための簡単な方法があるはずのように私は感じて、私は私の必要 –