C# 具有字符串比较的Documentdb linq查询

C# 具有字符串比较的Documentdb linq查询,c#,linq,azure-cosmosdb,C#,Linq,Azure Cosmosdb,尽管DocumentDb支持字符串范围比较 client.CreateDocumentQuery( 收集链接, “从f族中选择*,其中f.Address.State>‘NY’”, 新的FeedOptions{EnableScanInQuery=true}) 您还可以像这样构造DocumentDB Linq查询 var-zipLinqQuery= 从db.ZIPMASTERs中的z开始 其中z.CORP==listItem.CORP &&z.ZIPBEG.CompareTo(listItem.ZI

尽管DocumentDb支持字符串范围比较

client.CreateDocumentQuery(
收集链接,
“从f族中选择*,其中f.Address.State>‘NY’”,
新的FeedOptions{EnableScanInQuery=true})

您还可以像这样构造DocumentDB Linq查询

var-zipLinqQuery=
从db.ZIPMASTERs中的z开始
其中z.CORP==listItem.CORP
&&z.ZIPBEG.CompareTo(listItem.ZIPCODE)=0
选择z

我无法使用Linq表达式动态构造Linq字符串比较查询:

Expression stringCompare=(x,y)=>x.CompareTo(y)>0;
Invoke(stringCompare,new[]{left,right})

生成以下输出

(调用((x,y)=>x.CompareTo(y),x.state,“NY”)>0)

DocumentDB API似乎不支持调用,也不支持“比较”。它支持如上所述的“CompareTo”,但在动态构建Linq表达式树时不支持。非常感谢您的建议。

请尝试这种方式(其中Item是对象的C#表示):

Expression filterDateExpression=d=>d.dateuploadedtc.CompareTo(fromS)>=0&&
d、 DateUploadedUTC.CompareTo(toS)这样试试(其中Item是对象的C#表示):

Expression filterDateExpression=d=>d.dateuploadedtc.CompareTo(fromS)>=0&&
d、 日期上载比较(toS)
Expression<Func<Item, bool>> filterDateExpression = d => d.DateUploadedUTC.CompareTo(fromS) >= 0 &&
                                                         d.DateUploadedUTC.CompareTo(toS) <= 0;