虽然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,它不支持&#34;比较&#34;。它支持&#34; CompareTo&#34;如上所述,但在动态构造Linq表达式树时则不行。任何建议都非常感谢。
答案 0 :(得分:0)
以这种方式尝试(其中Item是对象的C#表示):
Expression<Func<Item, bool>> filterDateExpression = d => d.DateUploadedUTC.CompareTo(fromS) >= 0 &&
d.DateUploadedUTC.CompareTo(toS) <= 0;
希望这有帮助!