Mor*_*ker 1 .net c# linq dynamic-data
通常,带字符串的动态linq查询可以使用替换值,例如:
result =
db.Persons.Where("Name == @1", "John");
Run Code Online (Sandbox Code Playgroud)
我有一个未知数量的字符串,我想传递给该Where子句.我没有整数问题,但API似乎无法处理没有替换值的字符串.
有没有人知道这方面的方法?我为我的Where语句创建了一个连接字符串,所以我可以添加"@ 1"或其他什么,但我不能添加参数,Where()所以我被卡住了.
谢谢!
我为where语句创建了一个连接字符串,所以我可以添加"@ 1"或者其他什么,但我不能将参数添加到Where(),所以我被卡住了.
是的你可以.该Where方法的第二个参数是params object[] values,所以你只需要传递一个对象数组.
例如,假设您在字典中具有属性名称和值,则可以执行以下操作:
var dic = new Dictionary<string, object>
{
{ "Name", "John" },
{ "Age", 30 },
{ "City", "New York" }
};
...
var conditions = dic.Keys.Select(
(key, idx) =>
string.Format("{0} == @{1}", key, idx));
string predicate = string.Join(" And ", conditions);
object[] values = dic.Values.ToArray();
result = db.Persons.Where(predicate, values);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |