وقتی دستور اسکیولی مینویسیم بدینصورت
SELECT Name Famil ....From Person
در بخش نمایشی برنامه برای نمایش داده در فیلدها اینجوری مینویسیم
txtPhone.text=DataRow["Phone"]
و اگر در تمام فرمهای برنامه کنترلها بدینصورت مقید شده باشد فرض کنیم دوست داریم فیلد Phone در قسمت بانک برنامه به Mobile تغییر نام دهیم باید در کل پروژه فیلدهای رشته ای "Phone" را پیدا کرد و تبدیل به Mobile کرد
حالا شما فکرش بکنید اگر تعداد زیادی فیلد نیاز به تغییر باشد اونوقت خیلی مشکل بوجود میاد و عملا در توسعه چنین پروژه ای با مشکل بر میخوریم
را چاره تحت کامپایلر قرار دادن تغییرات هست یکی از روشها بکارگیری ORM ها هست
در این روش بجای دستورات رشته ای از Property ها برای دسترسی به فیلدهای بانک بهره می بریم
txtPhone.text=dbcontext.Phone
در اینجا دیگر اثری از رشته نیست و اگر در سطح مدل برنامه فیلد Phone به Mobile تغییر پیدا کرد توسط ادیتور ویژوال استودیو و با ابزارهای جانبی مانند Resharper تغییرات بصورت داینامیک میتواند شود و خیلی کمتر نیاز به تغییر دستی عنوان این فیلدها هست
دستورات درج توسط ef خیلی سادست
dbcontext.Phone.Add(new Phone{id=1,name=3232})
dbcontext.savechanges()
دیگر خبری از دستورات sql نیست متد Add در پس زمینه تبدیل به دستورSQLشده و با savechanges به سمت دیتابیس ارسال میشود
برای بکارگیری گراید در درج اطلاعات به هیچ وجه نباید به فکر sql جوین شده افتاد
روش کار بدینصورت هست که فیلدهایی که نیاز هست اطلاعات اون در گرید نشون داده بشه ابتدا مشخص میسازیم
مثلا :جدول Person شامل فیلدهایی مثل FirstName, LastName
و جدول Details شامل فیلدهایی مثل Tel, Address
برای اینکار یک کلاس بنام People میسازیم
public calss Peapole
{
public string FirstName{get;set;}
public string LastName{get;set;}
public string Address{get;set;}
public string Tel{get;set;}
}
حالا باید لیستی را توسط EF از روی دو جدول Person و Detail بسازیم
var list=dbcontext.Detail.Select(x=> new Peapole{FirstNme=x.Person.FirstName,LastName=x.Per son.LastName,Tel=x.Tel,Address=x,Address}).Tolist( );
دستورات بالا به لامبدا مشهور هستند
کافیه به یک گرایدبایند کنیم
grid.datasource=list
و برای انتقال اطلاعات ویرایش شده از گزاید به بانک هم باید به تفکیک فیلد های هر جدول را از گرید استخراج و در بانک ذخیره کنیم
که زیاد سخت نیست