//create parameters to pass to the stored procedure
//First input Parameter
var param1 = new SqlParameter { ParameterName = "@paramName1",
SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = 1 };
//Second input parameter
var param2 = new SqlParameter { ParameterName = "@paramName2",
SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Input, Value = "Test Input" };
//third out parameter
var param3 = new SqlParameter { ParameterName = "@paramName3",
SqlDbType = SqlDbType.VarChar, Direction = ParameterDirection.Output, Size = 255 };
//compose the SQL
var SQLString = "EXEC [dbo].[name of the Stored Proc] @paramName1, @paramName2, @paramName3";
//Execute the stored procedure
var employees= DataContext.Employee.SqlQuery(SQLString, param1, param2, param3);
//or you can execute the SP using below
//var employees = DataContext.Database.SqlQuery<Employees>
(SQLString, param1, param2, param3)
Points of Interest
- In the above sample,
DataContext
would be the name of yourDataContext
Instance variable - Employee would be name entity (POCO class) mapping to your database
- If the
resultset
returned by the SP would be mapped to theIEnumerable
collection of Entity - The above sample would returnIEnumerable<Employee>
- We can use
<DataContext>.DataBase.SqlQuery
method or<DataContext>.<EntityName>.SqlQuery
- Your
out
param declared would have value returned by SP - The connect sting should have
MARS = true - MultipleActiveResultSets=true