【发布时间】:2021-12-02 23:50:18
【问题描述】:
在 ASP.Net Core Web 应用程序中,将值传递给 DB Context 类以将其用作过滤器的正确方法是什么?
我需要过滤在我的 ASP.Net Core Web 应用程序的所有页面中返回的数据。过滤器将基于登录的用户。如果登录用户来自分支 6108,那么他们应该只能看到该分支的数据。如果我使用原始值,我可以说
modelBuilder.Entity<Branch>().HasQueryFilter(b => b.BranchID == 6108);
问题是我们有 50 多个分支机构,因此任何登录用户的数量都会有所不同。
所以我希望它说出来
modelBuilder.Entity<Branch>().HasQueryFilter(b => b.BranchID == branchFilter);
其中 branchFilter 是我使用获取登录用户后发现并传递的值
@User.Identity.Name
【问题讨论】:
-
将
branchFilter设为DbContext的属性/字段。请参阅带有 _tenantId 的 Global Query Filter 示例
标签: c# asp.net-core entity-framework-core razor-pages dbcontext