2016-05-12 7 views
0

Ist es möglich, benutzerdefinierte Tabelle von SP zurückzugeben. Ich benutze zuerst den EF Code.Benutzerdefinierte Tabelle von Stored Procdure in Ef-Code zuerst zurückgeben

Das ist mein SP

CREATE PROCEDURE [dbo].[GetUserNotification] 
    @ToUserId INT 
AS 
BEGIN 
select TU.FullName as ToUserName, 
     FU.FullName as FromUserName, 
     N.NotificationClickType, 
     N.TemplateId, 
     J.Title as JobTitle, 
     J.Identifier as JobIdentifier, 
     B.Identifier as BidIdentifier 
     from Notification N 
     inner Join AppUser TU on TU.Identifier = N.ToUserId 
     inner Join AppUser FU on FU.Identifier = N.FromuserId 
     inner Join Bid B on B.Identifier = N.NotificationBidId 
     inner Join Job J on J.Identifier = B.JobId 
     where [email protected] 
     Order By N.Identifier DESC 
END 

mein Benutzerdefinierte Ansicht Modell

public class NotificationModel 
    { 
     public string ToUserName { get; set; } 

     public string FromUserName { get; set; } 

     public NotificationClickType NotificationClickType { get; set; } 

     public int TemplateId { get; set; } 

     public string JobTitle { get; set; } 

     public int JobIdentifier { get; set; } 

     public int BidIdentifier { get; set; } 
    } 

ich geschaffen habe, gleiche Ansichtsmodell. Aber überall, wo ich Using SP gesehen habe, kann ich nur einzelne Tabellendaten zurückgeben, die ich in meiner DbContext-Klasse hinzugefügt habe.

Antwort

0

Wenn Sie Ihre gespeicherte Prozedur zum EF-Modell hinzufügen, wird automatisch ein komplexer Typ erstellt. (Zumindest war es für mich, mit Model First).

Der Name des komplexen Typs ist der SP-Name mit "_Result" hinzugefügt, z. GetUserNotification_Result.

können Sie die komplexe Art verwenden wie:

using (Entities dbContext = new Entities()) 
{ 
    List<GetUserNotification_Result > data = dbContext.GetUserNotification(userId).ToList(); 
} 

Alternativ https://msdn.microsoft.com/en-us/data/jj691402.aspx zeigt, wie erste-Code verwenden. How to call Stored Procedure in Entity Framework 6 (Code-First)? kann auch hilfreich sein.

+0

Aber ich benutze Code zuerst. Ich habe überhaupt keine EDMX-Datei. Wie man meinen SP zu meiner Kontextklasse hinzufügt. – Programmer

+0

@Programmer - siehe meine bearbeitete Antwort. –

Verwandte Themen