In meinem aktuellen Projekt verwende ich SQL CE. Da es keine Unterstützung für gespeicherte Prozeduren gibt, muss ich SQL-Abfragen in das Repository schreiben.Was ist die beste Vorgehensweise zum Schreiben von SQL-Abfragen in C# -Code
Option 1:
StringBuilder query = new StringBuilder();
query.Append("SELECT");
query.Append(" c.CUSTOMER_ID,");
query.Append(" COALESCE (c.FIRST_NAME, '') + ' ' + COALESCE (c.LAST_NAME, '') AS FULL_NAME");
query.Append(" ct.NAME as CUSTOMER_TYPE");
query.Append("FROM ");
query.Append(" CT_CUSTOMER_TYPE AS ct INNER JOIN CUSTOMER AS c ON ct.CUSTOMER_TYPE_ID = c.CUSTOMER_TYPE_ID");
Option 2:
string query = "SELECT c.CUSTOMER_ID, COALESCE (c.FIRST_NAME, '') + ' ' + COALESCE (c.LAST_NAME, '') AS FULL_NAME, ct.NAME as CUSTOMER_TYPE FROM CT_CUSTOMER_TYPE AS ct INNER JOIN CUSTOMER AS c ON ct.CUSTOMER_TYPE_ID = c.CUSTOMER_TYPE_ID";
Option 1 scheint wie ein viel besser lesbar, vor allem, wenn ich 10 + Tabellen in beitreten, aber die Option 2 ist schneller.
Welche Option sollte ich akzeptieren und was ist die beste Vorgehensweise in diesem Fall?
Das bedeutet auch, dass die App gehen und die Ressource abrufen muss, könnte auch ein kleiner Leistungseinbruch sein. –
Das ist, was ich für komplexe SQL-Befehle tue. Es ermöglicht Ihnen, das SQL so frei zu bearbeiten, wie Sie in Management Studio tun würden, und bietet eine korrekte Syntaxfärbung. Die Leistungseinbuße beim Lesen der eingebetteten Ressource ist im Vergleich zu einem Datenbanktreffer vernachlässigbar. –
Ihr Recht, es ist vernachlässigbar im Vergleich zu einem db-Hit ... es ist ungefähr so wichtig wie die Verwendung des StringBuilder. –