C# 使用ef运行存储过程-不返回任何结果,但在ssms中有效
C#:C# 使用ef运行存储过程-不返回任何结果,但在ssms中有效,c#,entity-framework,C#,Entity Framework,C#: 公共任务FindByIdAsync(int userId) { 对象[]参数={ 新的SqlParameter(“@Name”,SqlDbType.VarChar,20){Value=DBNull.Value,Direction=ParameterDirection.Input}, 新的SqlParameter(“@Email”,DBNull.Value){Direction=ParameterDirection.Input,SqlDbType=SqlDbType.NVarChar,Si
公共任务FindByIdAsync(int userId)
{
对象[]参数={
新的SqlParameter(“@Name”,SqlDbType.VarChar,20){Value=DBNull.Value,Direction=ParameterDirection.Input},
新的SqlParameter(“@Email”,DBNull.Value){Direction=ParameterDirection.Input,SqlDbType=SqlDbType.NVarChar,Size=50},
新的SqlParameter(“@Id”,Convert.ToInt32(userId)){SqlDbType.Int,Direction=ParameterDirection.Input}
};
context=新的MALoginContext();
var user=context.Database.SqlQuery(“exec dbo.UserRecordGet@Name、@Email、@Id”、parameters).FirstOrDefault();
return Task.Run(()=>{return user;});
}
但我从该方法返回null
但是,以下返回一个MAUser:
public Task<MAUser> FindByIdAsync(int userId)
{
object[] parameters = {
new SqlParameter("@Name",SqlDbType.VarChar,20){ Value = DBNull.Value, Direction = ParameterDirection.Input },
new SqlParameter("@Email",DBNull.Value){ Direction = ParameterDirection.Input, SqlDbType = SqlDbType.NVarChar,Size=50},
new SqlParameter("@Id",Convert.ToInt32(userId)){ SqlDbType.Int,Direction = ParameterDirection.Input}
};
context = new MALoginContext();
var user = context.Database.SqlQuery<MAUser>("exec dbo.UserRecordGet @Name, @Email, @Id", parameters).FirstOrDefault();
return Task.Run<MAUser>(() => { return user; });
}
公共任务FindByNameAsync(字符串用户名)
{
对象[]参数={
新的SqlParameter(“@Name”,SqlDbType.VarChar,20){Value=userName,Direction=ParameterDirection.Input},
新的SqlParameter(“@Email”,DBNull.Value){Direction=ParameterDirection.Input,SqlDbType=SqlDbType.NVarChar,Size=50},
新的SqlParameter(“@Id”,SqlDbType.Int){Value=-1,Direction=ParameterDirection.Input}
};
context=新的MALoginContext();
var user=context.Database.SqlQuery(“exec dbo.UserRecordGet@Name、@Email、@Id”、parameters).FirstOrDefault();
return Task.Run(()=>{return user;});
}
我想没有人发现我的错误 线索在商店的产品里。我把参数搞错了。真是个白痴 我在GRRRRR上花了很多时间
public Task<MAUser> FindByIdAsync(int userId)
{
object[] parameters = {
new SqlParameter("@Name",SqlDbType.VarChar,20){ Value = DBNull.Value, Direction = ParameterDirection.Input },
new SqlParameter("@Email",DBNull.Value){ Direction = ParameterDirection.Input, SqlDbType = SqlDbType.NVarChar,Size=50},
new SqlParameter("@Id",Convert.ToInt32(userId)){ SqlDbType.Int,Direction = ParameterDirection.Input}
};
context = new MALoginContext();
var user = context.Database.SqlQuery<MAUser>("exec dbo.UserRecordGet @Name, @Email, @Id", parameters).FirstOrDefault();
return Task.Run<MAUser>(() => { return user; });
}
public Task<MAUser> FindByNameAsync(string userName)
{
object[] parameters = {
new SqlParameter("@Name",SqlDbType.VarChar,20){ Value = userName, Direction = ParameterDirection.Input },
new SqlParameter("@Email",DBNull.Value){ Direction = ParameterDirection.Input, SqlDbType = SqlDbType.NVarChar,Size=50},
new SqlParameter("@Id",SqlDbType.Int){ Value=-1,Direction = ParameterDirection.Input}
};
context = new MALoginContext();
var user = context.Database.SqlQuery<MAUser>("exec dbo.UserRecordGet @Name, @Email, @Id", parameters).FirstOrDefault();
return Task.Run<MAUser>(() => { return user; });
}