ORM یه لایه ایه بین بانک اطلاعاتی و کدهای سی شارپ شما .. درواقع میاد اینو تبدیل میکنه به این :
این یک کوئری به زبان لینک هستش (فرض میکنیم یک ابجکت معادل با یک جدول بانک اطلاعاتی داریم که لیستی از کاربران را با مقادیر نام , نام خانوادی و سن دارد)
var result = from c in Users where c.Age > 10 select c;
این هم کوئری بالایی به روش لامبدا (که معمولا برای EF از این استفاده میکنن)
var result = Users.where(c => c.Age > 10);
البته در لامیدا کوئری دستور where به صورت defer loading اجرا میشه .. بهتره که این شکلی نوشته بشه
var result = Users.where(c => c.Age > 10).ToList();
حالا ORM میاد کوئری های شما رو با استاندارد های SQL حالا چه T-Sql چه Pl-Sql و ... به دستورات قابل فهم بانک اطلاعاتی تبدیل میکنه که مثلا T-Sql به این شکل میشه :
select [Name],[Family],[Age] from Users where [Age] > 10
الا سوال من اینکه مگه به غیر از Linq (که ما میومدیم sp رو توی Linq to classes درگ میکردیم)چه راه دیگه ای هست که بشه از sp های نوشته شده توی sql server استفاده کرد؟
بله .. n تا روش وجود داره ... مثلا به روش ADO :
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "StoredProcedureName";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
reader = cmd.ExecuteReader();
// Data is accessible through the DataReader object here.
sqlConnection1.Close();