[英]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 調用?
如果您在同一范圍內有很多命令,您可以使用類似personCommand
或productCommand
名稱。 從MSDN 通用命名約定,您可以:
請選擇易於閱讀的標識符名稱。 例如,名為 HorizontalAlignment 的屬性比 AlignmentHorizontal 更易讀英文。
一定要重視可讀性而不是簡潔。 屬性名稱 CanScrollHorizontally 優於 ScrollableX(對 X 軸的模糊引用)。
請勿使用下划線、連字符或任何其他非字母數字字符。 X 不要使用匈牙利符號。
避免使用與廣泛使用的編程語言的關鍵字沖突的標識符。
請參閱有關C# 編碼約定的更多信息。 在其他情況下,我更喜歡只使用command
來保持簡單,因為范圍會告訴我。
另一個很好的提示,當您使用實現IDisposable
接口(如SqlCommand
、 SqlConnection
,您可以使用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;
}
還有更多關於編碼約定的內容。 請參閱參考資料中的鏈接。
一個好的和更易讀的約定是表達命令將做什么。 如果您閱讀updateProductCommand或queryCategoryCommand,每個人都會立即知道該命令的用途。 當您以存儲過程為目標時,最好使用 sproc 名稱作為命令前綴,如sp_UpdateProductCommand 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.