Sto sviluppando un registro dei contatti in un sito Web utilizzando VS 2010, MVC3 ed EF 5: le entità vengono create utilizzando il codice per primo. I dati vengono archiviati in un set di database SQL Server 2008 R2. Voglio visualizzare un riepilogo del registro dei contatti e ho creato una vista.Utilizzo di una vista SQL da un codice Entity Framework Prima versione 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
ci sono due entità nel database dei contatti Log (ContactLogEntries
e ContactLogCategories
) e un database prima entità Control.dbo.EndUsers
in un altro database. Il registro dei contatti può contenere un numero elevato di record. Voglio essere in grado di visualizzare solo i record per un caso specifico.
La mia domanda è in due parti:
- Posso usare la vista SQL direttamente per visualizzare un riepilogo su una pagina web (magari leggendo in una classe)
- Posso creare un codice prima oggetto equivalente alla vista SQL.
Niente dice SQL Injection come la concatenazione di stringhe! – SwampyFox
Nessuna iniezione SQL qui. Uno - questo è un esempio illustrativo; due, CaseID non viene restituito dal sito web. Posso avere il mio più uno per favore? –
Peter - Riesco a capire che questo codice è di natura illustrativa, ma, in nessun modo, un lettore può sapere se CaseID proviene o meno da qualcosa che viene pubblicato in un modulo (ad esempio, modifica o arriva da una stringa di query). Metterò il tuo valore aggiunto se parametrizzi la stringa. Renderà il tuo codice un po 'più lungo, ma sarà un valido esempio per la community. Consente inoltre a SQL Server di creare un piano di esecuzione per questa query per il successivo riutilizzo. – SwampyFox