احتمالا شما بر نامه نویسان حوزه ی .Netبا این سوال مواجه شده باشید که کدام یک از تکنولوژی های ارتباط با دیتا بیس در دات نت بهتر میباشد ، بنده بر حسب تجربیاتی که داشتم یک مقایسه ی کوچک در این زمینه انجام دادم امیدوارم به درد شما عاشقان عرصه ی صفر و یک بخوره و شما نیز با نظرات خود بر دانش نه چندان زیاد ما بیافزایید:

شاید کسانی که تازه پا در عرصه ی برنامه نویسی گذاشته اند بعد از یک مدت کاملا سردر گم خواهند بود که کدام تکنولوژی را برای استفاده در پروژه های خود به کار گیرند و یا اینکه باتوجه به نیاز بازار فعلا کدام یک مقبولیت بیشتری نسبت به دیگری دارد، واقعیت امر این است که این دو تکنولوژی  دو پروژه به صورت موازی با هم مشغول به گسترش بودند که در نهایت مایکروسافت تصمیم گرفت که دیگه Linq to Sql رو گسترش نده و فقط EntityFramework رو گسترش بده. در واقع ابتدا مایکرو سافت شروع به طراحی Linq to Sql کرد و سپس به سوی EF روی آورد . 

و هر کدام از اینها هم بنا بر نیاز ما میتونن مورد استفاده قرار بگیرند به این صورت که اگر پروژه ما کوچک است و دیتابیس مورد استفاده Sql Server بهتر است از L2Sاستفاده شود ولی اگر پروژه ما بزرگ هستش و از دیتا بیس های نظیر اوراکل استفاده میکنیم  بهتر است از EF استفاده گردد پیشنهاد ما برای کسانی که تازه در این ورطه قدم میگذارند این است ابتدا Linq را یاد گرفته و سپس به طور کامل به سوی EF پرواز نمایید ، در حالت کلی :

 

 در کل سه متد برای کار با Entity Framework وجود داره:

  1.  Code First
  2.  Model First
  3.  Database First

که برنامه نویس میتونه یکی از متد هارو با توجه به علاقه و نیازش کار کنه
در بین این ها Code First به دلیل امکانات زیادی که به برنامه نویس میده و دستش رو بیشتر باز میزاره، بیشتر مورد توجه هستش
طبق اخبار غیر قطعی ای هم که از Microsoft بیرون اومده، تو نسخه جدید EF یعنی نسخه 7 فقط از همین متد پشتیبانی میشه
پس به شما هم توصیه می کنم اگر میخواید تازه قدم در این راه بگذارید، با همین متد شروع کنید.

میرسیم به قسمت دوم سوالتون
LINQ در واقع زبانی برای کوئری زدن روی مجموعه هاست ( Language Integrated Query ) و نه یک تکنولوژی برای ارتباط با دیتابیس
LINQ به چندین بخش مختلف با کارایی های خاص تقسیم میشه، مثل:

  1. LINQ to Entity
  2. LINQ to Object
  3. LINQ to XML
  4. LINQ to Dataset

پس در نتیجه، شما باید این دو تا رو در کنار هم باد بگیرید
EF برای ارتباط با دیتابیس
LINQ هم به عنوان زبان نقل و انتقال داده در این ارتباط 

 

Entity Framework and LINQ to SQL

باید به این نکته هم توجه داشت که شرکت مایکرو سافت دیگر از تکنولوژی Linq پشتیبانی نخواهد کرد و به احتمال بسیار زیاد بر حسب شنیده های رسمی و غیر رسمی از سال 2017 دات نت دیگر پشتیبانی از این سیستم نخواهد داشت و کلا با EF راه خود را ادامه خواهد داد .

موفق باشید قلی اوغلی