qual è lo scopo dell'entità sql, cioè se si dispone di linq per le entità, perché è necessario scrivere query nella stringa, ci sono motivi di prestazioni o qualcosa del genere?entità quadro entità sql vs linq alle entità
risposta
LINQ to Entities non consente l'accesso a tutte le funzionalità del database. Essere in grado di "raggiungere" il database è talvolta necessario per le query avanzate, sia per rimuoverle, sia per migliorare le scelte a volte orribili che il sistema LINQ to Entities comporterà riguardo alla query.
Detto questo, credo che LINQ alle Entità dovrebbe essere il primo strumento a cui si può arrivare. Se la prestazione diventa un problema, o se hai qualcosa di più complesso, allora incapsulerei quel pezzo di problema in una stored procedure e lo chiamerei. Al giorno d'oggi non c'è motivo per cui le stringhe vengano utilizzate come base per le query.
ESQL consente di scegliere una collation su una clausola where, che non è supportata in LINQ-to-Anything. Questo può essere veramente utile. ESQL consente inoltre di specificare il tipo preciso che si desidera restituire quando i tipi si ereditano l'uno dall'altro (al contrario di LINQ OfType
, che restituisce le istanze di un certo tipo e qualsiasi sottotipo). Oltre a ciò, non riesco a pensare ad un buon motivo per usarlo. Di tanto in tanto è utile poter creare query nelle stringhe, ma DynamicQuery/Dynamic LINQ è generalmente abbastanza buono nei casi molto rari in cui ciò è necessario.
Penso (forse cinicamente) che lo scopo "reale" di ESQL è "è precedente a LINQ".
Per quanto riguarda il punto di Godeke di fissare query non ottimali, devo ancora vedere uno che non ho potuto correggere cambiando l'espressione LINQ. Sia ESQL che L2E finiscono come CCT, quindi la pipeline di generazione SQL è la stessa.
- 1. linq alle entità generate sql
- 2. Entity Framework vs Linq alle entità vs Linq a SQL
- 3. Grado SQL in LINQ alle entità
- 4. Impaginazione quadro entità C#
- 5. DataLoadOptions equivalenti per LINQ alle entità?
- 6. LINQ alle entità contiene ricerca maiuscole/minuscole
- 7. Aggiungere una data in Linq alle entità
- 8. Utilizzo memoria quadro entità
- 9. LEFT JOIN in LINQ alle entità?
- 10. Utilizzo di DateTime in LINQ alle entità
- 11. Mesi distinti con Linq (alle entità)
- 12. Problema con LINQ alle entità e String.StartsWith
- 13. LINQ alle entità query a DataTable
- 14. Clausola dynamic where in Linq alle entità
- 15. ASP.NET MVC + LINQ su SQL o entità?
- 16. Entità di tracciamento automatico vs Entità POCO
- 17. LINQ to entità AcceptAllChanges SaveChanges
- 18. linq alle entità, una clausola where in where? (interno dove)
- 19. Converti entità entità nell'entità
- 20. Quadro entità. Visualizza record duplicati di restituzione
- 21. LINQ alle entità per la sottrazione di 2 date
- 22. Oggetti business vs. entità
- 23. Prestazioni di lettura dati quadro Entità
- 24. estendere linq alle entità per riconoscere i metodi personalizzati
- 25. Entity Framework 'ArrayIndex' non è supportato in LINQ alle entità
- 26. Esiste un modo per ottimizzare questa query LINQ alle entità?
- 27. Come fare LEFT JOIN in LINQ alle entità?
- 28. Clausola "Select NOT IN" in Linq alle entità
- 29. Entità Framework POCO Entità nell'applicazione web multistrato
- 30. VB.Net Linq alle entità Null Comparison - 'Is Nothing' or '= Nothing'?
Il mio punto sulle query non ottimali è che posso fare cose in TSQL che non posso in LINQ alle entità. Fai un giro su Google con "parametri sniffing entities" per alcuni esempi (o, se hai la soluzione, per favore fammi sapere e aiuta tutti gli altri che ne hanno bisogno!) La soluzione generale che ho trovato affidabile è usare T-SQL per evitare gli errori di sniffing. – Godeke
T-SQL, sì. ESQL, no, per la maggior parte. La domanda era LINQ vs * E * SQL, non * T * -SQL. –
spiega gli acronimi pls – alchemical