我有这个SP
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文件。
它告诉我它无法弄清楚返回类型。我尝试去属性,但它没有“无”作为选择,我不能输入。它应该是“无”,那么如何将其设置为“无”?
答案 0 :(得分:1)
您是否有任何特殊原因需要从Linq-to-SQL模型中调用它?
我会采取务实的态度:
UPDATE:从直接调用ADO.NET调用存储过程,您可以使用标准的ADO.NET内容作为任何有关.NET数据访问或ADO.NET教程的编程书籍(仅限Google)为此!)会教你:
using(SqlConnection con = new SqlConnection(your-connection-string-here))
{
string sprocName = "UsersInsert";
using(SqlCommand cmd = new SqlCommand(sprocName, con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter param1 = new SqlParameter("@UpdateXml", SqlDbType.VarChar, int.MaxValue);
param1.Value = YourXmlValueHere;
cmd.Parameters.Add(param1);
con.Open();
int result = cmd.ExecuteNonQuery();
con.Close();
}
}
当然,您可能希望将其包装到try ... catch块中以进行异常处理等等 - 但这基本上是您需要使用直接ADO.NET调用该存储过程的代码。
答案 1 :(得分:0)
您可以编辑.dbml的.designer.cs文件,只需编辑stor的返回值即可。 PROC。
并且您还应该使用右键单击.dbml文件,然后以xml打开以进行编辑。