C# 执行存储过程的实体框架不返回值
有没有人对变量C# 执行存储过程的实体框架不返回值,c#,entity-framework,stored-procedures,dbcontext,C#,Entity Framework,Stored Procedures,Dbcontext,有没有人对变量工作返回743行,而变量不工作不返回任何行的原因有什么建议 据我所知,他们正在做同样的事情 我无法发布存储过程,但我不认为这是问题所在,因为我可以从第一个变量获得结果集 我尝试使用一个SQL跟踪——我是新手——但看不到任何有助于我解决这个问题的东西 var TretSpefParameter = new SqlParameter("TretSpef", "101"); var SexParameter = new SqlParameter("Sex", 1); var SDiagP
工作
返回743行,而变量不工作
不返回任何行的原因有什么建议
据我所知,他们正在做同样的事情
我无法发布存储过程,但我不认为这是问题所在,因为我可以从第一个变量获得结果集
我尝试使用一个SQL跟踪——我是新手——但看不到任何有助于我解决这个问题的东西
var TretSpefParameter = new SqlParameter("TretSpef", "101");
var SexParameter = new SqlParameter("Sex", 1);
var SDiagParameter = new SqlParameter("SDiag", "*");
var works = await Context.Database.SqlQuery<sp_RefData_Predictive>("sp_RefData_Predictive @TretSpef = '101', @Sex = 1, @SDiag = '*'").ToListAsync();
var notWorks = await Context.Database.SqlQuery<sp_RefData_Predictive>("sp_RefData_Predictive @TretSpef, @Sex, @SDiag", TretSpefParameter, SexParameter, SDiagParameter).ToListAsync();
var TretSpefParameter=新的SqlParameter(“TretSpef”,“101”);
var SexParameter=新的SqlParameter(“Sex”,1);
var SDiagParameter=新的SqlParameter(“SDiag”,“*”);
var works=wait Context.Database.SqlQuery(“sp_RefData_Predictive@TretSpef='101',@Sex=1,@SDiag='*'”).ToListAsync();
var notWorks=await Context.Database.SqlQuery(“sp_RefData_Predictive@TretSpef、@Sex、@SDiag”、TretSpefParameter、SexParameter、SDiagParameter”).tolistsync();
我不得不改变:
@TretSpef, @Sex, @SDiag
到
@TretSpef=@TretSpef、@Sex=@Sex、@SDiag=@SDiag
var notWorks=await Context.Database.SqlQuery(“sp_RefData_Predictive@TretSpef=@TretSpef,@Sex=@Sex,@SDiag=@SDiag”,TretSpefParameter,SexParameter,SDiagParameter)。toListSync();
查看一下:发布存储过程声明。您在第一次调用中使用的是命名参数,但在第二次调用中使用的是位置参数,这可能会导致参数分配不匹配。旁注:您不应在存储过程中使用sp_u
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!
@TretSpef=@TretSpef, @Sex=@Sex, @SDiag=@SDiag
var notWorks = await Context.Database.SqlQuery<sp_RefData_Predictive>("sp_RefData_Predictive @TretSpef=@TretSpef, @Sex=@Sex, @SDiag=@SDiag", TretSpefParameter, SexParameter, SDiagParameter).ToListAsync();