簡體   English   中英

C# SqlCommand 命名約定

[英]C# SqlCommand naming convention

我對使用 C# 和 ASP.NET 還很陌生,我很好奇在 SQL 數據庫上運行多個查詢時是否有命名 SqlCommands 的約定。 例如,我已經創建了我的 SqlConnection 並且我希望調用一個函數、兩個存儲過程,並且只創建一個常規的簡單查詢。 目前,我正在使用:

SqlCommand function = new SqlCommand();
SqlCommand command = new SqlCommand();
SqlCommand proc1 = new SqlCommand();
SqlCommand proc2 = new SqlCommand();

對於這些不同的命令是否有更可接受的命名約定,或者我應該只使用單個命令,因為我在后面的代碼塊中使用 CommandText 和 CommandType 調用?

如果您在同一范圍內有很多命令,您可以使用類似personCommandproductCommand名稱。 MSDN 通用命名約定,您可以:

請選擇易於閱讀的標識符名稱。 例如,名為 Horizo​​ntalAlignment 的屬性比 AlignmentHorizo​​ntal 更易讀英文。

一定要重視可讀性而不是簡潔。 屬性名稱 CanScrollHorizo​​ntally 優於 ScrollableX(對 X 軸的模糊引用)。

請勿使用下划線、連字符或任何其他非字母數字字符。 X 不要使用匈牙利符號。

避免使用與廣泛使用的編程語言的關鍵字沖突的標識符。

請參閱有關C# 編碼約定的更多信息。 在其他情況下,我更喜歡只使用command保持簡單,因為范圍會告訴我。

另一個很好的提示,當您使用實現IDisposable接口(如SqlCommandSqlConnection ,您可以使用using() { }結構在此范圍之后處理對象。 樣品:

public IEnumerable<Person> GetPersons()
{
    var result = new List<Person>();

    using (var connection = new SqlConnection("connection string"))
    {
       // I know it is a person command, because it is in a method for it.
       // Keep it simple!
       using (var command = new SqlCommand("select id, name from persons", connection))
       {
          using (var reader = command.ExecuteReader())
          { 
              while (reader.Read())
              {
                  result.Add(new Person() {
                     Id = (int) reader["id"];
                     Name = reader["name"] as string;                    
                  });
              }
          } // reader is disposed here
       } // command is disposed here
    } // connection is disposed here

    return result;
}

還有更多關於編碼約定的內容。 請參閱參考資料中的鏈接。

一個好的和更易讀的約定是表達命令將做什么。 如果您閱讀updateProductCommandqueryCategoryCommand,每個人都會立即知道該命令的用途。 當您以存儲過程為目標時,最好使用 sproc 名稱作為命令前綴,如sp_UpdateProductCommand

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM