【发布时间】:2016-05-12 06:23:11
【问题描述】:
我有这个 SQL 查询
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>($@"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 ) ) //用空字符串或 environment.newline 替换逗号分隔符,以适合您所需的输出。
-
您需要修复您的 sql 查询以返回一个值。或者你可以使用保罗的方式。
-
难道不能在 mssql 中使用 for xml 以简单的方式做到这一点吗?
标签: c# sql-server xml entity-framework