我正在尝试构建一个LINQ表达式,以便使用CosmosClient SDK从我的cosmosdb容器中获取数据。看起来像这样:
p => (p.HairState.Density == hairState.Density
|| p.HairState.Density == nextClosestHairState.Density) &&
(p.HairState.Porosity == hairState.Porosity
|| p.HairState.Porosity == nextClosestHairState.Porosity) &&
(p.HairState.Texture == hairState.Texture
|| p.HairState.Texture == nextClosestHairState.Texture) &&
(p.HairState.Thickness == hairState.Thickness
|| p.HairState.Thickness == nextClosestHairState.Thickness);
这无法正常工作。另一方面:
p => (p.HairState.Density == hairState.Density) &&
(p.HairState.Porosity == hairState.Porosity) &&
(p.HairState.Texture == hairState.Texture) &&
(p.HairState.Thickness == hairState.Thickness);
按预期工作。我是使用LINQ进行数据库查询的新手,所以我想知道LINQ是否不支持此类和/或嵌套。
还有,我是否有办法生成等效的sql查询,以便我能确切了解发生了什么?谢谢!
答案 0 :(得分:1)
可以使用ToQueryDefinition()扩展方法从QueryText属性获取SQL查询的文本,然后可以使用资源管理器测试该SQL并获取可以正常工作的SQL查询。