在 LINQPad 中启用 EntityFramework.DynamicFilters 作用域参数
Enable EntityFramework.DynamicFilters scoped parameters in LINQPad
我的多租户数据有以下 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
对话框
- 将
Additional Reference
添加到 EntityFramework.DynamicFilters.dll
- 输入
Additional Namespace Import
的 EntityFramework.DynamicFilters
- 单击
Set as default for new queries
,如果这对您来说是常事
- 点击
OK
。
点击 F5
到 运行 查询。
感谢 Jon Skeet for this answer here 告诉我为什么我的数据在我知道应该出现时却没有出现。
我的多租户数据有以下 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
对话框 - 将
Additional Reference
添加到EntityFramework.DynamicFilters.dll
- 输入
Additional Namespace Import
的EntityFramework.DynamicFilters
- 单击
Set as default for new queries
,如果这对您来说是常事 - 点击
OK
。
点击 F5
到 运行 查询。
感谢 Jon Skeet for this answer here 告诉我为什么我的数据在我知道应该出现时却没有出现。