W moim bieżącym projekcie używam SQL CE. Ponieważ nie obsługuje procedur składowanych, muszę pisać kwerendy sql wewnątrz repozytorium.Co to jest najlepsza praktyka do pisania zapytań sql wewnątrz kodu C#
Wariant 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");
Opcja 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";
Wariant 1 wydaje się o wiele bardziej czytelny, zwłaszcza gdy mam 10 + tabel w przyłączyć, ale opcja 2 jest szybszy.
Którą opcję należy zaakceptować i jaka jest najlepsza praktyka w tym przypadku?
Oznacza to również, że aplikacja musi przejść i odzyskać zasób, może to być również mniejszy hit wydajnościowy. –
To jest to, co robię dla złożonych poleceń SQL. Pozwala na edycję SQL tak swobodnie, jak w Management Studio, i zapewnia poprawne kolorowanie składni. Kara za wykonanie odczytu zasobu osadzonego jest nieistotna w porównaniu z trafieniem bazy danych. –
Twoje prawa, to jest nieistotne w porównaniu do trafienia db ... jest mniej więcej tak samo ważne jak użycie StringBuilder. –