В моем текущем проекте я использую SQL CE. Поскольку у него нет поддержки хранимых процедур, мне приходится писать sql-запросы внутри репозитория.Какова наилучшая практика написания SQL-запросов внутри кода C#
Вариант 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");
Вариант 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";
Вариант 1 кажется, гораздо более удобным для чтения, особенно когда у меня есть 10+ таблиц в присоединиться, но вариант 2 быстрее.
Какую опцию я должен принять и что является лучшей практикой в этом случае?
Это также означает, что приложение должно идти и извлекать ресурс, может быть и незначительное повышение производительности. –
Это то, что я делаю для сложных команд SQL. Он позволяет редактировать SQL так же свободно, как и в Studio Management, и обеспечивает правильную окраску синтаксиса. Снижение производительности для чтения встроенного ресурса незначительно по сравнению с ударом базы данных. –
ваше право, это пренебрежимо мало по сравнению с ударом db ... это примерно так же важно, как и использование StringBuilder. –