مقایسه ی Linq TO SQL  و Entity Framework

 

Linq To SQL :

Linq To Sql  با هدف تولید سریع نرم افزارهای مرتبط با SQL Server بوجود آمد.

مزایا:

1.      Lazy Loading of Data

2.      تولید کلاسها و متدها بصورت partial  که امکان ایجاد Business Logic دلخواه و وارثت را برای برنامه نویس  فراهم می کند

3.      امکان بهینه سازی اجرا بوسیله Compiled Query  و Stored Procedure

4.      map many-to-many relationships با استفاده از کلاس میانی

Entity Framework  :

سناریوی اصلی و هدف EF انعطاف بیشتر ، mapping  پیچیده تر و ایجاد مدل داده ای مفهومی است. که علاوه بر امکانات Linq  To Sql  مزایای دیگری را نیز فراهم کرده است.

مزایا:

1.      مستقل از دیتابیس : بدلیل وجود فراهم کنندگان EF برای دیتابیسهای مختلف از قبیل Oracle ، MySQL ، DB2 و...  نیازی به نوشتن کوئری های متفاوت بر اساس دیتابیس نمی باشد و تنها با کوئری های LINQ می توان با با انواع منابع دیتا ارتباط برقرار کرد.

2.      پشتیبانی از POCO  (Plain Old CLR Objects)

3.      پشتیانی از Model-First  : ایجاد مدل قبل از ایجاد دیتابیس

4.      Lazy Loading of Related Objects

5.      پشتیبانی از نامگذاری Plurality

6.      پشتیبانی از Complex Type

7.      map many-to-many relationships بدون نیاز به کلاس میانی و بصورت مستقیم (مپ کردن یک کلاس به چند جدول)

8.      نمایش لایه مفهومی با استفاده از EDM

9.      قابلیت اشتراک یک مدل از میان Replication, Reporting Services, BI, Integration Services و...


منبع : MSDN