PDA

View Full Version : فرق بین Linq to sql و EF



ali_mnkt
پنج شنبه 06 مهر 1391, 13:24 عصر
با سلام

سئوال من اینه که چه فرقی بین Linq و ٍEntity Framework در رابطه با دستکاری داده ها در پایگاه داده وجود داره ؟ مثلا Linq برای دسترسی به داه هایی در sqlserver از object model استفاده می کنه و EF هم از EDM استفاده می کنه که از نظر مفهومی جفتشون یک کار می کنن . برای query نویسی هم که Linq از دستورات خودش استفاده می کنه و EF هم می تونه از دستورات Linq استفاده کنه خوب با این حرفها همون Linq کارمون رو راه می انداخت پس چه لزومی به استفاده از EF بود .

به صورت خلاصه فرق بین Linq to sql و EF چیه ؟

ali_mnkt
پنج شنبه 06 مهر 1391, 21:14 عصر
کسی نمی تونه کمک کنه ؟

mahmood_4246
پنج شنبه 06 مهر 1391, 21:41 عصر
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/