【发布时间】:2015-10-17 17:30:40
【问题描述】:
SqlParameter 和ObjectParameter 的主要区别是什么?
ObjectParameter[] parameters =
{
new ObjectParameter("MainUserName", user.MainUserName),
new ObjectParameter("MainUserFirstName",user.MainUserFirstName),
new ObjectParameter("MainUserLastName",user.MainUserLastName),
new ObjectParameter("DOJoin", DateTime.Now),
};
SqlParameter[] parameters =
{
new SqlParameter("@MainUserName", user.MainUserName),
new SqlParameter("@MainUserFirstName",user.MainUserFirstName),
new SqlParameter("@MainUserLastName",user.MainUserLastName),
new SqlParameter("@DOJoin", DateTime.Now),
};
我正在编写 MVC 代码 首先,我想通过存储过程与我的数据库进行通信。 那么哪一种是将参数传递给SP的最佳方法? 上次我尝试通过传递 Sql 参数来执行 SP,但遇到以下异常
Procedure or function 'InsertUser' expects parameter '@MainUserName', which was not supplied
我试图通过尝试不同的场景来解决它,但没有运气。 最后我想我应该使用对象参数而不是 Sql 参数。 但不知道这些之间的主要区别是什么?
编辑
我想使用ExecuteSqlCommandAsync 运行下面的代码,它期望object[] parameters
public async Task InsertAsync(ActionCriteria obj)
{
await _dbCOntext.Database.ExecuteSqlCommandAsync(obj.SpName, obj.SqlParameter) ;
}
public Task<int> ExecuteSqlCommandAsync(string sql, params object[] parameters);
那么我将如何将 sqlperameters 传递给 ExecuteSqlCommandAsync,以便它可以使用提供的 SqlParameters 而不是 ObjectParameters
【问题讨论】:
标签: asp.net-mvc stored-procedures entity-framework-6 code-first