在我當前的項目中,我使用的是SQL CE。由於它不支持存儲過程,所以我必須在存儲庫中編寫sql查詢。在c#代碼中編寫sql查詢的最佳做法是什麼?
選項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速度更快。
我應該接受哪種選擇?在這種情況下,最佳做法是什麼?
這也意味着應用程序必須去檢索資源,也可能是一個次要的性能。 – 2010-07-04 21:30:57
這就是我爲複雜的SQL命令所做的。它允許您像在Management Studio中那樣自由編輯SQL,並提供適當的語法着色。與數據庫命中相比,讀取嵌入式資源的性能損失可以忽略不計。 – 2010-07-04 21:40:34
你的權利,與數據庫命中相比,它是微不足道的......它和使用StringBuilder一樣重要。 – 2010-07-04 22:13:15