【发布时间】:2013-10-11 06:38:22
【问题描述】:
我在其他答案中阅读了如何在运行时更改 linq 查询的参数。但是是否可以在创建查询之后更改查询浏览的数据源?是否可以为查询提供一个空包装器,在该包装器中可以插入和拔出数据源,而查询不知道?
例如,让我们假设这种情况:
// d1 is a dictionary
var keys = from entry in d1
where entry.Value < 5
select entry.Key;
现在,让我们假设我希望 myQuery 保持不变,而不是修改 d1,但我希望它处理一个全新的字典 d2。
这样做的原因是我想将谁提供查询与谁提供数据源分离。 IE。将字典视为与服务相关联的元数据,将查询视为服务消费者发现哪些服务集与其标准匹配的平均值。我需要对每个服务的元数据应用相同的查询。
我猜我正在(可能是错误地)使用正则表达式进行并行处理:可以编译正则表达式,然后将其应用于任何字符串。我想对查询和字典做同样的事情。
【问题讨论】:
-
你想做什么?你能展示一些伪代码来解释你所追求的吗?
-
我不肯定,但听起来您可能正在寻找对象关系映射 (ORM)。
-
LINQ to Objects,或其他形式...?
-
按要求添加了一些上下文/示例...
-
@manu3d 更新为您展示更标准的选项。