У меня есть этот запрос будетC# - EF SQLQuery и SQL Server "FOR XML PATH"
Select Ident
From Synchronization.ObjectsToResend
Where SyncTypeId = 36
FOR XML PATH('')
который возвращает
<Ident>8</Ident>
<Ident>9</Ident>
<Ident>10</Ident>
<Ident>11</Ident>
<Ident>12</Ident>
<Ident>13</Ident>
<Ident>14</Ident>
<Ident>16</Ident>
<Ident>17</Ident>
Я думал, что это единственный результат, и я мог сопоставить этот сингл строка в C#.
_context.Database.SqlQuery<string>([email protected]"Select Ident From Synchronization.ObjectsToResend Where SyncTypeId = {id} FOR XML PATH('')");
К сожалению, я получаю исключение
последовательность содержит более одного результата
Если добавить «Top 1» на мой вопрос, я получаю только один Ident, так что я мог бы итерацию через результаты. Я этого не хочу.
Возможно ли вернуть мой xml в качестве одного элемента? Производительность важна.
StringValue = string.join ("", (your_select_that_returns_more_than_one_result)) // замените разделитель запятой на пустую строку или среду.newline, в зависимости от того, что подходит вашему желаемому результату. – Paul
Вам нужно исправить свой SQL-запрос, чтобы вернуть одно значение. или вы можете использовать путь Павла. – Saadi
Невозможно сделать это простым способом в mssql, используя для xml? – adamo94