Я имею следующую структуру объекта в C# объектРасширенный запрос в Dapper
new [] {
new SomeType {
Id = XXX,
SomeSubType = new []{z,y,x,w}
},
.
.
.
}
Я пытаюсь создать что-то вроде следующего SQL-запроса для Dapper.
SELECT *
FROM some_table, some_other_table
WHERE (X = XXX/*@Id*/ AND Y IN (z, y, x, w) /*@SomeSubType*/)
OR (X = AND Y IN (....))
OR (....)
OR (....)
.....)
Я мог бы динамически создать запрос, в соответствии с объектом, и создать много параметров для каждого варианта - но это боль.
Может ли кто-нибудь подумать о более удобном способе сделать это? возможно, лучший запрос, обеспечивающий выполнение обоих условий?
Может быть, вы должны прочитать плоские данные списка (от вашего соединения) и группировать их в C# – Shyju
, что на самом деле не плохая идея, я думаю, что это то, что я буду делать , – gilmishal
Я бы сказал, что динамическое создание запроса - лучшая ставка, но в зависимости от типов X и Y вы можете объединить их как 'X + '' + Y IN @ Combined', а затем' @ Combined' будет 'stuff. SelectMany (i => i.SomSubType.Select (j => iX + "" + jY)) 'Но это может привести к неэффективному запросу. – juharr