ASP.NET MVC آموزش c# فناوری

Entity Framework چیست؟ ( مثال عملی ) قسمت دوم

امیرحسین عراقی
نوشته شده توسط امیرحسین عراقی

در قسمت قبل به معرفی و تاریخچه Entity Framework  پرداختیم .

 

اکنون نوبت انجام یک مثال عملیست.ما در ابتدا روش Database First پیش می رویم :

اولین کار اینه که پرو وایدر یا مدل Entity مون رو به پروژه اضافه کنیم:

Right Click on Project -> add new Item -> data tab -> ADO.NET entity data model

سپس  مانند زیر

entity frame work

connection string را انتخاب می کنیم . در زیر سوال می کنه که رمز را در web.config  قرار بدهد یا نه .اگر نذاره هر بار می پرسه.

 

 

برای مثال ما نام mymodel  را قرار دادیم و mymodel.edmx  که edmx = entity data model xml  هست.لایه دیتا توسط مدل کنترل می شود.

برای نمونه مایک فایل WebForm برای مثال اضافه می کنیم به پروژه و insert  را انجام می دهیم. با زدن button  ثبت. ابتدا در button  یک شی از بستر ارتباطیمون بسازیم.هرچی اسم بانک باشه entity  به صورت پیشفرض یک entity تهش میذاره. مثلا testEntities.

شی را در کل کلاس می سازیم یعنی همان ابتدا.

 mvc net entity frame work tutorial

زمانی که saveChanges زده می شود تازه فراخوانی می شود و با بانک اطلاعاتی sync می شود .پس می شود چند عملیات انجام داد و همه را باهم sync کرد.

در بخش مدل از table  یک کلاس ساخته است و با همان نام قابل مشاهده است.متد .Find() متعلق به Entity  است و همان SingleOrDefault  خودمان است که بر فقط روی کلید اصلی کار می کند .نباشه null  برمی گرداند.

int code_edit = int.Parse(txtSearch.Text);
var stu_edit2 = db.student.Find(code_edit);
db.student.Remove(stu_edit2);
db.SaveChanges();
Response.Redirect("Default.aspx");   

برای Delete  و Update  ابتدا با متد find   رکورد را پیدا و سپس پاک می کنیم. یک جدول جدید می سازیم با نام income و relation  را با جدول قبل ایجاد می کنیم .

entity FrameWork .net MVC

یک نمونه ساده inner join   که برای نمایش حقوق از table  جدا زده شد.اگر بخواهیم در فرم از هر دو table  اطلاعات بگذاریم  یا دیلیت کنیم از هر دو table می توانیم از transaction  مانند عکس زیر استفاده کنیم.

entity framework .net MVC

زمانی که SaveChange  زده می شود تمام دستورات در قالب یک پکیج به بانک ارسال می شود.و با این کار اول p  را ثبت می کند.سپس ID  آن را در پایینی میگذارد و آن را ثبت می کند.

اگر SaveChange  در آخر باشه  هر کدام که خطایی داشته باشند دیگه Save انحام نمیشه اما اگر بعد از هرکدام Save  باشد جدا جدا save  می شود.

Entity Framework .net MVC

در اینجا income  در یک table دیگر است که با ارتباط یک به چند متصل گردیده .رابطه Lazy Load  است .  هست تا صداش می زنیم میره میارش از روی رابطه .برای بانک های سنگین lazy  را غیر فعال می کنند.همه چیز توسط شخص و کد گرفته می شود.

  • Transaction  Roll-back برای  Delete استفاده می شود.
  • در Entity  از همان طریق که Entity  را add  کردیم می توان store procedure  هم add  کرد.و به سادگی در پروژه استفاده کرد.

درباره نویسنده

امیرحسین عراقی

امیرحسین عراقی

درج دیدگاه