我有這樣的SPLINQ到SQL存儲過程的問題(它無法找出返回類型)
USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UsersInsert](@UpdatedProdData XML)
AS
INSERT INTO
dbo.UserTable(UserId,UserName,LicenseId,Password,PasswordSalt,Email,IsApproved,IsLockedOut,CreateDate,
LastLoginDate,LastLockOutDate,FailedPasswordAttempts,RoleId)
SELECT
@UpdatedProdData.value('(/ArrayOfUsers/Users/UserId)[1]', 'uniqueidentifier'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/UserName)[1]', 'varchar(20)'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/LicenseId)[1]', 'varchar(50)'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/Password)[1]', 'varchar(128)'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/PasswordSalt)[1]', 'varchar(128)'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/Email)[1]', 'varchar(50)'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/IsApproved)[1]', 'bit'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/IsLockedOut)[1]', 'bit'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/CreateDate)[1]', 'datetime'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/LastLoginDate)[1]', 'datetime'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/LastLockOutDate)[1]', 'datetime'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/FailedPasswordAttempts)[1]', 'int'),
@UpdatedProdData.value('(/ArrayOfUsers/Users/RoleId)[1]', 'int')
現在這個SP創建就好了。這是當我去VS2010並嘗試將我的linq的方法面板中的SP拖到設計視圖中的sql文件。
它告訴我它無法確定返回類型。我嘗試去屬性,但它沒有「無」作爲選擇,我不能輸入它。它應該是「無」,所以我如何將它設置爲「無」?
我不必從linq調用它到sql,但它似乎是eaiser。我仍然不會有同樣的問題,但我需要seraliaze,它可能會需要一個XElement字符串?或者那只是linq想要的一些特別的東西?如果是這樣,那麼這種常規方式將如何?也可以更好地去使用sqlbulk而不是這個存儲過程? – chobo2 2010-05-20 20:45:45
@ chobo2:不,很可能,您可以使用字符串類型參數來調用此存儲過程。對於大量的數據,是的,SqlBulkCopy肯定是更好的選擇。 – 2010-05-20 20:54:01
所以更新我怎麼會與sqlConnection,sqlCommand和存儲過程? – chobo2 2010-05-21 04:06:03