将用户定义的函数转换为EF的存储过程

时间:2014-03-22 16:31:49

标签: c# sql sql-server entity-framework

这是我在项目中使用的用户定义函数:

CREATE FUNCTION [dbo].[Encrypt]
(
@Password nvarchar(4000)
)
RETURNS varbinary(4000)
AS
BEGIN
SELECT @Password = CONVERT(nvarchar(4000),@Password);
RETURN HashBytes('SHA1', @Password);
END
GO

我需要实体框架,所以,有可能找到一种方法在SQL Server 2012 Express中的存储过程中转换这个吗?

1 个答案:

答案 0 :(得分:1)

程序定义

CREATE PROCEDURE [dbo].[usp_Encrypt]
@Password   nvarchar(4000), 
@HashedPass varbinary(4000) OUTPUT
AS
BEGIN
 SET NOCOUNT ON;
   SET @HashedPass = HashBytes('SHA1',CONVERT(nvarchar(4000),@Password));
END

执行程序

DECLARE @RtnHashedPass varbinary(4000);

EXECUTE [dbo].[usp_Encrypt]
@Password   = 'myPassword'
@HashedPass = @RtnHashedPass OUTPUT

SELECT @RtnHashedPass  --<-- Do what ever you want to do with this value