[英]In Entity Framework How To Extract Procedure Information In mvc asp.net
我在sql server
有一個stored procedure
,即
Create PROCEDURE [dbo].[Validate_User]
@Username NVARCHAR(20),
@Password NVARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UserId INT, @LastLoginDate DATETIME, @RoleId INT
SELECT @UserId = UserId, @LastLoginDate = LastLoginDate, @RoleId = RoleId
FROM Users WHERE Username = @Username AND [Password] = @Password
IF @UserId IS NOT NULL
BEGIN
IF NOT EXISTS(SELECT UserId FROM UserActivation WHERE UserId = @UserId)
BEGIN
UPDATE Users
SET LastLoginDate = GETDATE()
WHERE UserId = @UserId
SELECT @UserId [UserId],
(SELECT RoleName FROM Roles
WHERE RoleId = @RoleId) [Roles] -- User Valid and Returns UserId and Roles
END
ELSE
BEGIN
SELECT -2 -- User not activated.
END
END
ELSE
BEGIN
SELECT -1 -- User invalid.
END
END
這里是我ActionResult
[HttpPost]
public ActionResult Login(string Username,string Password,bool RememberMe)
{
try
{
int userid = 0;
string roles = string.Empty;
RememberMe = false;
if(ModelState.IsValid)
{
//Here I wnat to extract the procedure info like
// UserId And Roles if valid user
// And set those information in userid and roles
//...
}
}catch(Exception ex){
//Handel Any Exception
}
}
我正在使用Entity Framework Model
但對如何使用EF提取Procedure
返回值一無所知,就像我們使用SqlDataReader
作為索引的常規方法(例如reader["UserId"]
或reader["Roles"]
提取信息一樣。 那么我將如何在EF
mvc
做到這一點?
好吧好吧
首先 :在擁有實體的相同解決方案中進行項目
第二 :轉到“模型瀏覽器”選項卡
第三 :右鍵單擊圖的任何空間,然后單擊“更新模型”
第四 :按照向導步驟操作,然后選擇所需的存儲過程
第五 :添加它們后,現在在同一標簽“ Functions Imports”中查找文件夾。 添加一個並命名,並將其與您已添加的SP鏈接
還記得您必須創建一個復雜類型,您的SP將返回這些列,好嗎?
現在轉到控制器類。 記住要在類頂部添加模型上下文命名空間
現在,當您創建模型上下文的新實例時,將看到您為其命名的spFunctionImport
https://msdn.microsoft.com/zh-CN/library/bb896231(v=vs.100).aspx
以下鏈接較舊,但更具圖形效果
https://msdn.microsoft.com/zh-CN/data/gg699321.aspx
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.