Entity Framework چیست؟-مقالات

مقاله
تیر ۲۵, ۱۳۹۰
بازدید : 4568 بازدید

L2S محصولی است که توسط یکی از تیم‏های شرکت مایکروسافت جهت تولید خودکار کلاس‏های ORM و مدیریت این کلاس‏ها با توجه به ساختار بانکهای اطلاعاتی تولید شده است. در کنار این تیم (L2S ) تیم دیگری به تولید فناوری قدرتمندتری جهت ایجاد ORM با دیدی وسیع تر جهت پروژه‏های بزرگتر مشغول شد. فناوری حاصل از این تیم ADO.net Entity Framework نام گرفت، فناوری L2S و ADO.net Entity Framework (که از این به بعد به اختصار آن را EF می‏نامیم) با یکدیگر شباهت‏های زیادی دارند و مهمترین شباهت آنها در استفاده‏ی زبان Linq جهت کلاس‏های تولید شده از هر دو فناوری می‏باشد.

چرا مایکروسافت دو تکنولوژی مختلف ORM تولید کرده است؟

تکنولوژی L2S توسط یک تیم مایکروسافت با هدف تولید یک ORM که در نهایت بتواند با زبان Linq کار کند تولید شد و تکنولوژی EF توسط تیمی دیگری از مایکروسافت با هدف تولید یک ORM که بتواند با زبانی به نام EntitySQL (که شبیه به زبان SQL است) کار کند تولید شده است. این دو پروژه پس از تکمیل و تولید نسخه های آزمایشی به عرصه ی نمایش رسیدند و پس از یک توافق، امکان استفاده از زبان LINQ در ‏Entity Framework نیز فراهم شد. بنابراین در EF هم استفاده از زبان ESQL (Entity SQL) و هم LINQ فراهم است. و چنانچه از زبان LINQ  استفاده شود، این زبان بعداً به طورخودکار به eSQL تبدیل خواهد شد.

غیر از تفاوت در استفاده از زبان eSQL در EF ، مزایای دیگری نیز این تکنولوژی نسبت به L2S دارد که برخی از آنها را در زیر برشمریم:

۱)  در مدل سازی EF امکان وراثت گیری Entity ها فراهم است.

۲)  در EF امکان ایجاد یک Entity از چند جدول فراهم است.

۳)  روابط چند به چند در صورتی که Paylaod [1]وجود نداشته باشد در EF تنها با دو Entity پیاده سازی خواهد شد.

 Entity SQL چیست؟

تمامی تکنولوژی‏های ORM (بانک اطلاعلاتی شی‏گرا) یک زبان پرس وجو جهت کار با  EntityObject(اشیائی از نوع کلاسهای نماینده با ساختار جداول بانک)‏ ها قرار می‏دهند، اینگونه زبان‏ها را object query language یا (OQL) می‏نامند. زبانی که در همان ابتدا جهت دسترسی به ORM فناوری Entity Framework در نظر گرفته شد زبان پرس وجوی Entity SQL یا (eSQL) بود. در زبان eSQL شباهت‏هایی با زبان SQL وجود دارد اما عمده مزایای استفاده از OQL از جمله eSQL با زبان‏های پرس و جویی مانند SQL که بر روی جداول بانکهای اطلاعاتی کار می‏کنند در پشتیبانی از ویژگی‏های شی گرایی همچون ارتباطات (Association)، وراثت (Inheritance) هاست.

معماری ADO.net Entity Framework :

به دقت به معماری فوق توجه نمائید. در ادامه هر بخش را به تفضیل توضیح خواهیم داد.

 DataBase (دیتابیس):

در این قسمت پایگاه داده‏هائی همچون SQL Server و حتی Oracle قرار می‏گیرد.

 Entity Data Model :

مدل سازی درEF کمی شبیه به L2S است اما به طور زیربنائی چه از نظر تئوری و چه کاربری با یکدیگر متفاوت هستند، EF جهت مدل سازی بانک سه بخش را ایجاد و مدیریت می‏کند. در بخش Logical ساختارهای مربوط به جداول و ارتباطاتشان، در بخش Conceptual مفاهیم مربوط به کلاس‏ها و در بخش Mapping نقشه‏ای جهت ارتباط دو لایه قبلی وجود دارد. این سه بخش کار خود را در قالب سه فایل XML در محتوای پروژه ایجاد و نگهداری خواهند کرد.

 بخش منطق (Logical) :

این بخش پس از ارتباط مستقیم با پایگاه داده‏ها، شمای هر جدول و روابط بین آنها را  به صورت کدهایی با ساختار XML ذخیره می‏کنند. در این بخش دقیقاً ساختار و روابط بین جداول پایگاه داده ها کد خواهند شد. این بخش با فایلی با پسوند Store Schema Definition Language (.SSDL) در محتوای پروژه ذخیره خواهد شد.

 

 بخش (Conceptual) :

این بخش ادراک و صورت موجودیت‏ها را به  تصویر می‏کشد. در این بخش به شکل شی‏گرا با امکاناتی که EF در اختیار توسعه دهندگان قرار داده است بانک مدل سازی می‏شود.

به عنوان مثال جدول پرسنل زیر را در نظر بگیرید:

 

Like
امتیاز :
بدون رای!
مدیر سامانه
مدیر سامانه Mr.Code هستم . به صورت تخصصی در زمینه برنامه نویسی سازمانی و طراحی وبسایت و پرتال و طراحی اپلیکیشن اندروید فعالیت دارم .
همراه ما باشید در اینستاگرام رضا سورس صفحه اینستاگرام
دیدگاهتان را بنویسید

8 − پنج =

عضویت در خبرنامه رضا سورس

تمامی اطلاعات محفوظ است!