مقایسه بین Linq to SQL و Entity Framework

شاید برای شما هم این سوال مطرح شده باشد که 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  می توانیم ابتدا مدل خودمان را طراحی کنیم و سپس با استفاده از آن مدل ، بانک اطلاعاتی را تولید کنیم.