2016-05-05 14 views
0

In mvc asp.net Verfahren Informationen zu extrahieren Ich habe ein stored procedure in sql server dhIn Entity Framework Wie

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 

Hier ist mein 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 
      } 
} 

ich Entity Framework Model verwende, aber ich bin nicht immer eine Idee in Bezug auf, wie die Procedure Rückgabewerte mit EF wie extrahieren wir extrahieren Informationen mit SqlDataReader als normale Art und Weise mit Indizierung z reader["UserId"] oder reader["Roles"]. Also, wie werde ich das in mvc mit EF tun?

+0

var Ergebnissen1 = YourContext.Database.SqlQuery ("exec YourSPNAME Parameters-Wenn vorhanden). ToList(); Sie können Daten von SP wie folgt erhalten. –

+0

Lassen Sie mich versuchen ... Danke für die Unterstützung ... @ Sagar R –

+0

lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen. –

Antwort

0

Ok, gut

Erste: das Projekt in der gleichen Lösung gehen, wo Sie Ihre Einheiten haben

Zweite: Tab

zum Modellbrowser gehen

Dritte: rigth klicken Sie in jedem Raum des Diagramms und klicken Sie auf Update-Modell

Vierte: die Schritte des Assistenten folgen, dann Sie die gespeicherten Prozeduren wählen Sie benötigen

Fünfte: Sobald Sie sie hinzufügen, für den Ordner suchen jetzt in der gleichen Registerkarte „Funktionen Imports“. Fügen Sie ein und nennen Sie es und verbinden es mit dem SP bereits

hinzugefügt Denken Sie daran, dass Sie einen komplexen Typ erstellen, die die Spalten Ihre SP zurückkehren, ok?

Nun zur Controller-Klasse gehen. Denken Sie daran, das Modell Context-Namespace an der Spitze der Klasse

Jetzt hinzufügen, wenn Sie eine neue Instanz des Kontextmodells schaffen Sie die spFunctionImport sehen, dass Sie es

namens

https://msdn.microsoft.com/en-us/library/bb896231(v=vs.100).aspx

den folgenden Link ist alt, aber es ist mehr Grafik

https://msdn.microsoft.com/en-us/data/gg699321.aspx

Grüße

+0

Wenn es funktioniert, markieren Sie die Antwort als ok :) –