PDA

View Full Version : آموزش: مقایسه بین Linq to SQL و Entity Framework



reza344
چهارشنبه 09 شهریور 1390, 20:40 عصر
شاید برای شما هم این سوال مطرح شده باشد که Linq To Sql و Entity Framework چه تفاوتهایی دارند ، در این تایپیک این دو مورد را از جنبه های مختلفی مقایسه خواهم کرد .
1-complexity یا پیچیدگی : البته منظور از پیچیدگی از نگاه سخت و آسان بودن نیست بلکه از نگاه امکاناتی که در اختیار شما قرار می دهد . مسلما LINQ امکانات و پیچیدگیهای کمتری دارد.
2-model یا مدل سازی : ما در Entity Framework براحتی می توانیم مدل سازی کنیم علاوه بر آن از تمام ارتباطات بین جدولها پشتیبانی می کند LINQ از یک ارتباط یک به یک بین کلاسها و جدولهای بانک اطلاعاتی پشتیبانی می کند .
3-پشتیبانی از بانک اطلاعاتی : LINQ to SQL فقط از بانک اطلاعاتی Sql_Server پشتیبانی می کند در حالی که Entity Framework می تواند از بانکهای اطلاعاتی مختلفی پشتیبانی کند .
4-زمان توسعه پذیری :To SQL LINQ می تواند به راحتی استفاده شود و به سرعت کار شما را پیش ببرد . اما در نرم افزارهای پیچیده و بزرگ بدلیل داشتن امکانات محدود و کم دیگر جوابگو نیست .
5-وراثت : Entity Framework از وراثت بین کلاسها براحتی استفاده و پشتیبانی می کند در حالی که این خاصیت در LINQ وجود ندارد .
6-نوع فایل : LINQ در فایلی با پسوند DBML ذخیره می شوند در حالی که Entity Framework در فایلهای EDMX و CSDL ,SSDL که با فرمت xml است ذخیره می شوند .
7-نوع مرکب : ما در Entity Framework می توانیم فیلدی مرکب complex type تعریف کنیم . این فیلد چیزی شبیه به ساختار ها است . اما این امکان درTo SQL LINQ وجود ندارد
8-کویری : همانطور که در آموزشهای خودم نوشتم . Entity Framework از چندین سبک برای اجرای کویری استفاده می کند . Linq to Entity , EntitySQL , Query With Method
9-کارایی : هر دو از نظر سرعت در اولین اجرا شاید بتوان گفت کند هستند . اما Eitity Framework از نظر کارایی بهتر عمل می کند .
10-توسعه آینده : مایکروسافت چندان علاقه ای به توسعه و ادامه راه LINQ to SQL ندارد اما در عوض بیشتر تمرکز و توسعه را بر مبنای تکنولوژیهای دیگری گذاشته است از جمله Entity Framework
11-ساخت بانک اطلاعاتی از مدل : ما فقط در Entity Framework می توانیم ابتدا مدل خودمان را طراحی کنیم و سپس با استفاده از آن مدل ، بانک اطلاعاتی را تولید کنیم.





منبع (http://alaasabzpoush.blogsky.com/1390/04/18/post-89/)