c# - Entity Framework ExecuteSqlCommand Missing Input Parameter -


i'm having issue executesqlcommand() method in entity framework (ef). have following sql server stored procedure:

exec someschema.sometableinsert @id = 1,  @somedata = 'this random data',  @userid = 500 

and works without issues. when try use ef's executesqlcommand() method, following error:

procedure or function 'sometableinsert' expects parameter '@userid', not supplied. 

here c# code:

var sql = "someschema.sometableinsert @id, @somedata, @userid"; var sqlparameters = new list<sqlparameter>  {      new sqlparameter("@id", 1),     new sqlparameter("@somedata", "this random data"),      new sqlparameter("@userid", 500) };  dbcontext.database.executesqlcommand(sql, sqlparameters.toarray<object>()); 

i don't understand why i'm getting error. userid parameter not missing , has valid value. ideas?

update:

here sql run on sql server:

exec sp_executesql      n'someschema.sometableinsert @id, @somedata, @userid',     n'@id int,@somedata nvarchar(5),@userid int',     @id=1,     @somedata='this random data',     @userid=500 

var sql = "someschema.sometableinsert @id, @somedata, @userid"; var sqlparameters = new list<sqlparameter>  {      new sqlparameter("id", 1),     new sqlparameter("somedata", "this random data"),      new sqlparameter("userid", 500) };  dbcontext.database.executesqlcommand(sql, sqlparameters.toarray<object>()); 

remove @ prefix within sqlparameter.


Comments