我在运行时将未知数量的复杂键传递到我的函数中。它们的结构如下:
var keys = new List<List<string>>
{
new List<string> { "1", "a" },
new List<string> { "2", "b" },
new List<string> { "3", "c" }
};
内部列表总是有两个值。外部列表可以有 n 个值。我正在尝试查询一个表,其中记录与列表中的任何对匹配。我试过这样的查询:
var filtered =
dataContext.T.Where(
s => keys.Any(k =>
k[0] == s.Column0
&& k[1] == s.Column1));
此时,LinqToEntities 失败,因为 linq 似乎无法处理 .Any() 方法内的列表(或数组?)。
这是我运行此代码时遇到的错误:
"LINQ to Entities does not recognize the method 'System.String get_Item(Int32)' method, and this method cannot be translated into a store expression."
所以我的问题是,如何查询与列表中任何一对值匹配的记录?只要我可以查询一组对中的任何一个,我就可以更改有关结构的任何内容。
感谢您的任何指导。