【发布时间】:2016-04-05 01:54:18
【问题描述】:
虽然 DocumentDb 支持字符串范围比较,
client.CreateDocumentQuery<Family>(
collectionLink,
"SELECT * FROM Families f WHERE f.Address.State > 'NY'",
new FeedOptions { EnableScanInQuery = true });
您也可以像这样构造 DocumentDB Linq 查询。
var zipLinqQuery =
from z in db.ZIPMASTERs
where z.CORP == listItem.CORP
&& z.ZIPBEG.CompareTo(listItem.ZIPCODE) <= 0
&& z.ZIPEND.CompareTo(listItem.ZIPCODE) >= 0
select z;
来自Issues Doing a String Comparison in LINQ
我无法使用 Linq 表达式动态构造 Linq 字符串比较查询:
Expression<Func<string, string, bool>> stringCompare = (x, y) => x.CompareTo(y) > 0;
return Expression.Invoke(stringCompare, new[] { left, right });
产生以下输出。
(Invoke((x, y) => x.CompareTo(y), x.state, "NY") > 0)
看来,DocumentDB API 不支持 Invoke,也不支持“比较”。如上所述,它支持“CompareTo”,但在动态构建 Linq 表达式树时不支持。任何建议都非常感谢。
【问题讨论】:
标签: c# linq azure-cosmosdb