Come eseguire query SQL dinamica in Entity Framework 7 che esegue automaticamente la mappatura alle entità (SqlQuery )?

asp.net-core-mvc entity-framework entity-framework-core

Domanda

Ho un'app esistente che sto cercando di aggiornare da MVC5 / EF6 a MVC6 / EF7. Creiamo dinamicamente alcune delle nostre tabelle SQL e, di conseguenza, abbiamo fatto uso di

System.Data.Entity.Database.SqlQuery

metodo per mappare automaticamente le entità che usiamo nella nostra applicazione.

Questo metodo sembra essere andato via (ovvero non fa parte di Microsoft.Data.Entity.Infrastructure.Database) in EF7 (o non è ancora stato implementato). Ci sono piani per ri-implementare questo metodo in EF7 o c'è un altro modo per farlo? Il nostro progetto è praticamente morto nell'acqua finché non lo scopriremo.

Modificato il 20 maggio 2015

Ho cercato di farlo funzionare con FromSql, poiché è ciò che è disponibile in Beta4, ma non importa quale combinazione di stringa concatenata, i parametri che provo, continuo a ricevere versioni diverse di un messaggio "Sintassi errata vicino a @xxxvariable".

var results = Set<AssessmentResult>().FromSql("dbo.GetAssessmentResults @FieldA='Data1', @FieldB='Data2', @UserId = 2303"); 
var results2 = Set<AssessmentResult>().FromSql("dbo.GetAssessmentResults @FieldA= {0}", intData); 

Entrambe queste chiamate risultano

"Incorrect syntax near '@FieldA'" 

Qualche idea?

Risposta popolare

Di recente abbiamo introdotto il metodo di estensione .FromSql() su DbSet . Ha il vantaggio aggiuntivo di poter continuare a comporre LINQ su di esso.

var customers = db.Customers
    .FromSql("SELECT * FROM Customer")
    .Where(c => c.Name.StartsWith("A"));


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché