Ich entwickle ein Kontaktprotokoll in einer Website mit VS 2010, MVC3 und EF 5 - die Entitäten werden zuerst mit Code erstellt. Die Daten werden in einem SQL Server 2008 R2-Satz von Datenbanken gespeichert. Ich möchte eine Zusammenfassung des Kontaktprotokolls anzeigen und habe eine Sicht erstellt.Verwenden einer SQL-Ansicht aus einem Entity Framework-Code Erste Version 5
CREATE VIEW dbo.ContactLogSummaries
AS
SELECT
CLE.ContactLogEntryID,
CLE.CaseID,
'Test' AS ContactName,
EU.UserName As OfficeUser,
CLE.DateAndTimeOfContact,
CLC.Category,
CLE.ContactDetails
FROM
ContactLogEntries AS CLE
JOIN
ContactLogCategories AS CLC
ON CLE.ContactLogCategoryID = CLC.ContactLogCategoryID
JOIN
Control.dbo.EndUsers AS EU
ON CLE.UserID = EU.EnduserID
Es gibt zwei Einheiten in der Kontakt Log-Datenbank (ContactLogEntries
und ContactLogCategories
) und einer Datenbank erste Einheit Control.dbo.EndUsers
in einer anderen Datenbank. Das Kontaktprotokoll könnte eine große Anzahl von Datensätzen enthalten. Ich möchte nur die Datensätze für einen bestimmten Fall anzeigen können.
Meine Frage ist in zwei Teilen:
- Kann ich die SQL-Ansicht verwenden, um direkt eine Zusammenfassung auf einer Webseite angezeigt werden (vielleicht indem sie sie in eine Klasse zu lesen)
- Kann ich einen Code zuerst erstellen Objekt entspricht der SQL-Ansicht.
Nichts sagt SQL Injection wie String-Verkettung! – SwampyFox
Keine SQL-Injektion hier. Einer - das ist ein illustratives Beispiel; zwei, CaseID wird nicht von der Website zurückgegeben. Kann ich bitte mein Plus zurückhaben? –
Peter - Ich kann verstehen, dass dieser Code illustrativer Natur ist, aber es gibt keine Möglichkeit, dass ein Leser wissen könnte, ob CaseID von etwas kommt, das entweder an ein Formular gesendet wird (zB edit oder aus einer Abfragezeichenfolge kommt)). Ich gebe Ihr Plus zurück, wenn Sie die Zeichenfolge parametrisieren. Es wird Ihren Code ein wenig länger machen, aber es wird ein solides Beispiel für die Community sein. Darüber hinaus kann SQL Server einen Ausführungsplan für diese Abfrage zur späteren Wiederverwendung erstellen. – SwampyFox