我使用XML列表。
我使用这种存储过程:
CREATE PROCEDURE [dbo].[GetUsersInList]
@UserList nvarchar(MAX)
AS
BEGIN
DECLARE @DocHandle int
DECLARE @UsersListTable table (
[UserID] bigint
)
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @UserList
INSERT INTO
@UsersListTable ([UserID])
SELECT
doc.Value [UserID]
FROM
OPENXML(@DocHandle, '/List/Item', 1) WITH ([Value] int) doc
EXEC sp_xml_removedocument @DocHandle
SELECT
*,
IsNull(cast(TechID as varchar) + ' - ' + DisplayName, DisplayName) [FriendlyName]
FROM
dbo.[Users]
WHERE
[ID] IN (SELECT [UserID] FROM @UsersListTable)
END
要创建这种列表:
var list =
new XElement("List",
users.Select(user =>
new XElement("Item", new XAttribute("Value", user.Id))
)
);