0
bvz created
What is the best way that you would recoment calling stored procedures through the EntityFramework provider?
Currently I have added the following to the DbContext file:
public virtual int? spr_AddUser(Nullable<int> clientID, string username, string password, string name, string surname, string iDNumber, string email, Nullable<int> createdBy)
{
var clientIdPar = new SqlParameter("@ClientID", clientID);
var usernamePar = new SqlParameter("Username", username);
var passwordPar = new SqlParameter("Password", password);
var namePar = new SqlParameter("Name", name);
var surnamePar = new SqlParameter("Surname", surname);
var idNumberPar = new SqlParameter("IDNumber", iDNumber);
var emailPar = new SqlParameter("Email", email);
var createdByPar = new SqlParameter("CreatedBy", createdBy);
var retvalPar = new SqlParameter("@retval", SqlDbType.Int);
retvalPar.Direction = ParameterDirection.Output;
var parameters = new object[] { clientIdPar, usernamePar, passwordPar, namePar, surnamePar, idNumberPar, emailPar, createdByPar, retvalPar };
this.Database.ExecuteSqlCommand(
"exec @retval = spr_AddUser @ClientID,@UserName,@Password,@Name,@Surname,@IDNumber,@Email,@CreatedBy",
parameters);
return (int) retvalPar.Value;
}
This works,but I am not sure if this is the best way to call stored procedures when using ABP.
Could someone who is more experienced with ABP point me in the right direction?
1 Answer(s)
-
0
Create a custom repository method (<a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/EntityFramework-Integration#DocCustomRepositoryMethods">http://www.aspnetboilerplate.com/Pages/ ... oryMethods</a>) and call SP there. Then inject the repository and call the method wherever you need. Don't add method to DbContext since you can not inject DbContext in application layer.
Have an answer to this question?
Log in
and write your answer.