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

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

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

تاریخچه اتصال به پایگاه داده در NET.

مایکروسافت قبل از ارائه Entity Framework ، برای اتصال به پایگاه داده کار خود را با تکنولوژی ADO.NET آغاز کرد. مایکروسافت نسخه های مختلفی از این تکنولوژی را عرضه کرده است. بنابراین تعجبی ندارد که تمامی تکنولوژی های ارائه شده برای اتصال به پایگاه داده، با نام ADO.NET آغاز می شوند. بعد از این تکنولوژی، مایکروسافت در 2010 visual studio مفهومی با نام LinqToSql را مطرح کرد. هدف مایکروسافت از ارائه این تکنولوژی، اتصال به هر نوع منبع داده با یک روش یکسان بود. تکنولوژی های ADO.NET و ADO.NET LingtoSql به صورت From Database هستند. در این روش در ساخت یک برنامه بانک اطلاعاتی، ابتدا طراحی جدولها و ارتباط بین آنها در پایگاه داده ای مانند Sql Server یا Oracle و … انجام می شود. سپس برنامه نیز توسط تکنولوژی های موجود به این منبع اطلاعاتی متصل و در نهایت از جدول ها بانک اطلاعاتی استفاده می کند.
با گسترش و استفاده برنامه نویسان از مفاهیم شئ گرایی، کمبودی در زمینه کار با پایگاه داده به صورت شئ گرایی حس میشد. تا آن زمان تکنولوژی های ارائه شده برای اتصال به پایگاه داده توسط مایکروسافت به صورت کامل این امکان را نداشتند که با پایگاه داده به صورت شئ گرایی کار کنند.|
توسط تکنولوژی های گفته شده در صورتی که می خواستیم با پایگاه داده به صورت مفاهیم شئ گرایی کار کنیم مشکلات زیادی برای ما پیش می آمد. یکی از مهم ترین این مشکلات رابطه ای بودن دیتابیس ها (Rdbms) است. بنابراین برای برطرف کردن این مشکل نیاز به یک maper برای تبدیل کردن مفاهیم رابطه ای به مفاهیم شی گرایی احساس می شد. بنابراین تکنیک هایی برای نگاشت مفاهیم رابطهای دیتابیس به مفاهیم شی گرایی با مفهوم ORM ایجاد شد.Entity نیز یک فریم ورک برای پیاده سازی تکنیک برنامه نویسی ORM می باشد. بنابراین توسط این فریم ورک خواهیم توانست که تفکر شئ گرایی را در برنامه نویسی پایگاه داده پیاده سازی کرده و از طریق کلاسها و مفاهیم شئ گرایی به طراحی پایگاه داده برسیم. در واقع می توان گفت که با طراحی کلاسها در برنامه می توانیم به طراحی جدول ها در پایگاه داده برسیم. البته باید به این نکته اشاره کرد که این روش تنها راه پیاده سازی تکنیک برنامه نویسی ORM نیست. به عنوان مثال شرکت های دیگر مانند SUN | از تکنولوژی Hibernate برای پیاده سازی این تکنیک استفاده کرده اند.شکل زیر معماری این فریم ورک را نشان داده است.

entity Framwork

مزایای استفاده از Entity Framework

در این قسمت با اشاره به برخی از مزایای Entity Framework، به اهمیت یادگیری این تکنولوژی اشاره خواهیم کرد:

۱- ارتباط با تمامی محیط های پایگاه داده

در روش سنتی برنامه نویسی پایگاه داده، طراحی پایگاه داده در محیطی مانند Sql یا Oracle انجام می شود. بنابر این برنامه نویسان برای کار کردن با هر محیط پایگاه داده، باید با آن محیط آشنایی کاملی پیدا کنند. Entity Framework این مشکل را به طور کلی برطرف کرد؟ و در این تکنولوژی، دیگر نیازی به فکر کردن در ارتباط با محیط پایگاه داده خود ندارید چرا که چیزی که در این تکنولوژی اهمیت دارد طراحی پایگاه داده در برنامه است. برنامه نویس باید توسط کلاسها پایگاه داده خود را طراحی کنند. چراکه هر کلاس به جدولی در هر محیط پایگاه داده دلخواه تبدیل می شود. می توان گفت که Entity Framework مستقل از محیط پایگاه داده است. چرا که توسط امکانی که Entity Framework در اختیار ما قرار میدهد می توانیم طراحی جدولها و ارتباط میان آنها را توسط کلاس های برنامه انجام داده و سپس با مشخص کردن مسیر و نوع پایگاه داده، با اجرای برنامه کل طراحی جدول ها را در هر پایگاه داده ساخته و اجرا کنیم. به عبارت ساده تر در این تکنیک برنامه نویسی دیگر نگران محیط پایگاه داده نخواهیم بود.

٢- راحتی کار

ابزارهایی در ۲۰۱۳ توسط این فریم ورک می توان مدیریت بهتر و راحت تری روی داده های موجود در پایگاه داده داشت. همچنین Visual studio برای راحت کار کردن با این فریم ورک طراحی شده است. به عنوان مثال در Mvc می توان با مشخص کردن کلاس های جدول و رابطه ها، به صورت اتوماتیک دستورات درج، حذف، ویرایش و حذف اطلاعات را در برنامه ایجاد کرد.

۳- کاهش زمان برنامه نویسی

تکنیک هایی در این فریم ورک قرار داشته شده است که باعث کم و راحت تر شدن دستورات نسبت به تکنولوژی های قبلی مانند ADO.NET شده است. به طور مثال توسط این تکنولوژی این امکان برای ما فراهم شده است که جست وجویی که توسط دستورات SQL ممکن بود در سه خط انجام می شد. در این روش با یک خط این امکان فراهم شده است.

روش های طراحی Entity Framework   :

Entity Framework سه روش طراحی در برنامه نویسی ارائه کرده است:

Database First -۱  :

این روش قدیمی ترین روش طراحی در Entity Framework می باشد. که در اولین نسخه این فریم ورک ارائه شده است. روش طراحی این فریم ورک، ساده و بسیار غیر کارآمد است. در این روش، ابتدا طی مانند SQL Server طراحی کرده و سپس باید فایل پایگاه داده ایجاد باید پایگاه داده خود را در محیطی مانند Sql Server طراحی کرده و سپس باید فایل پایگاه داده ایجاد شده را در برنامه وارد کنید تا در نهایت Entity Framework از این پایگاه داده آماده استفاده کند. اگر  بخشی از پایگاه داده را در این روش بخواهید تغییر دهید باید ابتدا کل اطلاعات را در پایگاه داده تغییر و سپس دوباره در برنامه بروز رسانی کنید، که روش بسیار نا کارآمد می باشد. البته مشکل دیگر این روش، کار کردن آن تنها با محیط Sql server است. البته از نرم افزارهای جانبی دیگر نیز می توان برای وصل شدن به پایگاه های داده های دیگر نیز استفاده کرد.

Model First -۲

برای اولین بار این روش در نسخه 2010 Visual studio پشتیبانی شد. در روش Model First طراحی پایگاه داده در داخل برنامه و توسط محیطی که Entity Framework در اختیار ما قرار می دهد انجام می شود. در این حالت باید تمامی جدول ها و ارتباط بین آنها در داخل برنامه طراحی و سپس با اجرای دستوری در محیط پایگاه داده مورد نظر، آنها را ایجاد کنیم. در صورت تغییر بخشی از پایگاه داده، ابتدا باید پایگاه داده را در محیط برنامه تغییر و سپس دوباره توسط دستورات در محیط پایگاه داده نگاشته شود.

Code First -٣

همان طور که در فصل قبل اشاره کردیم در روش Code First طراحی جدول ها و رابطه ها توسط کلاس ها در برنامه انجام شده و سپس با اجرای برنامه و مشخص کردن مسیر و نوع پایگاه داده در برنامه، طراحی پایگاه داده در محیط دلخواه نگاشته می شود. .
به دلیل مزایای Code First، در ادامه با این روش پایگاه داده پروژه را طراحی و ایجاد خواهیم کرد.

ما در ابتدا روش Database First پیش می رویم .در قسمت بعد به ادامه این مطلب می پردازیم…

Button

 

[تعداد رای:1]

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

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

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

درج دیدگاه