在 LINQPad 中启用 EntityFramework.DynamicFilters 作用域参数



我对我的多租户数据有以下EntityFramework.DynamicFilters

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    [code removed for brevity]
    modelBuilder.Filter("NegotiationPermissionFilter", 
        (NegotiationPermission np, string userId, List<Guid> groupIds) => 
            (np.ApplicationUserId == userId) || (groupIds.Contains(np.GroupId)),
            () => "", () => new List<Guid>());
}

我想通过 LINQPad 查询数据。

如何配置 LINQPad 以允许我设置这些作用域参数的值?

向 LINQPad 添加一个C# Statement,如下所示:

var groupIds = new List<Guid>();
groupIds.Add(new Guid("283f872c-e3c9-e511-8272-984be10349a2"));
groupIds.Add(new Guid("2c673813-66cb-e511-8274-984be10349a2"));
this.SetFilterScopedParameterValue("NegotiationPermissionFilter", "userId", "b7562160-4416-49aa-9cb8-01bd7db93d59");
this.SetFilterScopedParameterValue("NegotiationPermissionFilter", "groupIds", groupIds);
var q = Negotiations.Include("NegotiationPermissions").Take (100);
q.Dump();

这些 GUID 与数据库中的数据相关的地方。

  • 按 F4 以显示 LINQPad 的Query Properties对话框
  • EntityFramework.DynamicFilters.dll添加Additional Reference
  • 键入Additional Namespace Import EntityFramework.DynamicFilters
  • 点击Set as default for new queries,如果这对你来说是一件常规的事情
  • 单击"OK
  • "。

F5以运行查询。

感谢Jon Skeet在这里的回答,它向我展示了为什么我的数据在我知道应该出现的时候没有出现。

最新更新