我们看到 System.Data.CommandType 只有 3 个枚举:“StoredProcedure”、“TableDirect”和“Text”。为什么我们不将“查看”视为一个选项?Microsoft 不提供此选项的特定框架原因是什么?
我在这里专门谈论 SQL Server 视图。
您的回答将不胜感激。
因为 aView
可以通过TableDirect
or访问Text
。无论如何,最常见的访问是Text
因为您通常会执行以下操作:
DataTable dt = new DataTable();
using (SqlConnection c = new SqlConnection(cString))
{
using (SqlDataAdapter sda = new SqlDataAdapter(sql, c))
{
sda.SelectCommand.Parameters.Add("parm1", value1);
c.Open();
sda.Fill(dt);
}
}
最后,视图实际上在 SQL Server 中表示为表。它有一个真正的表定义,它恰好是用查询构建的。
大多数情况下,View 不是单独使用的,而是作为查询或 SP 的一部分使用的。因此,没有必要提供专用的 CommandType。函数也是如此——没有 CommandType.Function。