【发布时间】:2009-03-27 14:20:16
【问题描述】:
我正在我的存储库类中重写内联 SQL 以改用存储过程(安全要求)。在过去使用 Fluent NHibernate 和 Linq2Sql 之后,我发现它非常笨拙和不优雅。
编辑:澄清一下,我不是在寻找适用于存储过程的 ORM 解决方案。我只是想要一些关于编写下面代码的好方法的建议。
有没有什么策略可以让这种代码尽可能优雅?
string commandText = "dbo.Save";
using (SqlConnection sql = new SqlConnection(_connString.ConnectionString))
using (SqlCommand cmd = sql.CreateCommand())
{
cmd.CommandText = commandText;
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter idParam = new SqlParameter("identity", item.Identity);
idParam.Direction = ParameterDirection.Input;
SqlParameter nameParam = new SqlParameter("name", item.Name);
nameParam.Direction = ParameterDirection.Input;
SqlParameter descParam = new SqlParameter("desc", item.Description);
descParam.Direction = ParameterDirection.Input;
SqlParameter titleParam = new SqlParameter("title", item.)
descParam.Direction = ParameterDirection.Input;
//SNIP More parameters
cmd.Parameters.Add(idParam);
cmd.Parameters.Add(descParam);
cmd.Parameters.Add(titleParam);
//SNIP etc
sql.Open();
cmd.ExecuteNonQuery();
//Get out parameters
}
return item;
【问题讨论】:
标签: c# sql stored-procedures