Phi*_*hil 9 c# linq stored-procedures linq-to-sql
我创建了一个存储过程,它接受参数来创建用户.如果用户已存在,则将输出参数设置为"用户已存在",并且不执行任何操作.
现在我已将此函数(InsertNewUser)映射到我的实体框架,并调用它如下:
context.InsertNewUser(email, name, passwordhash, salt, ???)
??? 是我遇到麻烦的地方.在存储过程中,此参数是OUTPUT参数.我尝试声明一个字符串,然后传入"out declaredString",但这不正确.
我不确定我是以正确的方式,任何想法?
这是存储过程:
ALTER PROCEDURE dbo.InsertNewUser
(
@eMail nvarchar(256),
@firstName nvarchar(256),
@lastName nvarchar(256),
@passwordHash nvarchar(256),
@salt nvarchar(256),
@output nvarchar(256) OUTPUT
)
AS
/* Saves a user to the db. */
BEGIN
--First check if the user doesn't exist
IF EXISTS (SELECT eMail FROM UserSet WHERE eMail = @eMail)
--Return that user exists
SET @output = 'User exists'
ELSE
INSERT INTO UserSet
VALUES (@eMail, @firstName, @lastName, @passwordHash, @salt)
END
For*_*ore 11
您也可以通过以下方式编写:
string output = "";
context.InsertNewUser(email, name, passwordhash, salt, ref output)
Run Code Online (Sandbox Code Playgroud)
我用这段代码解决了它:
//This will provide the parameter
System.Data.Objects.ObjectParameter parameter = new ObjectParameter("output", "nvarchar(256)");
//This will contain the returned values
ObjectResult result = context.CheckIfUserExists(eMail, parameter);
| 归档时间: |
|
| 查看次数: |
23130 次 |
| 最近记录: |