Ria*_*han 3 asp.net-mvc stored-procedures code-first entity-framework-6
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),
};
Run Code Online (Sandbox Code Playgroud)
我正在研究MVC Code First,我想通过存储过程与我的数据库进行通信.那么哪一个是将参数传递给SP的最佳方法?上次我试图通过传递Sql Perameters来执行SP但面临以下异常
Procedure or function 'InsertUser' expects parameter '@MainUserName', which was not supplied
Run Code Online (Sandbox Code Playgroud)
我尝试通过尝试不同的场景解决它,但没有运气.最后我想我应该使用Sql Perameters的Object Perameters intead.但不知道这些主要区别是什么?
Edite
我想运行我的下面的代码使用ExecuteSqlCommandAsync期望object[] parameters
public async Task InsertAsync(ActionCriteria obj)
{
await _dbCOntext.Database.ExecuteSqlCommandAsync(obj.SpName, obj.SqlParameter) ;
}
Run Code Online (Sandbox Code Playgroud)
public Task<int> ExecuteSqlCommandAsync(string sql, params object[] parameters);
Run Code Online (Sandbox Code Playgroud)
那么我将如何传递sqlperameters ExecuteSqlCommandAsync,以便它可以使用提供的SqlParameters而不是ObjectParameters来执行SP
SqlParameter是ADO.NET的一部分,如果底层数据库是SQL Server ,它可以在EF中使用.例如在context.Database.SqlQuery方法中.
ObjectParameter是EF的一部分(查看它的程序集名称),EF可以与许多DBMS一起使用(当然,每个案例都有特殊的提供者).ObjectParameter不需要SQL Server.SqlParameter确实.
这两个类都用于执行SP和原始SQL查询.我建议在SQL Server数据库的情况下,这些类之间没有概念上的区别.
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |