LINQ nested и / или космос db - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь создать выражение LINQ для выборки данных из моего контейнера cosmosdb с помощью CosmosClient SDK. Это выглядит примерно так:

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, поэтому я можно увидеть, что именно происходит? Спасибо!

1 Ответ

1 голос
/ 01 сентября 2020

Вы можете использовать метод расширения ToQueryDefinition () и получить текст запроса SQL из свойства QueryText. Затем вы можете протестировать этот SQL с помощью проводника и получить запрос SQL, который работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...