entity framwork در سی شارپ، راهی برای ارتباط با پایگاه داده

entity framwork در سی شارپ
تاریخ بروزرسانی : 15 مهر 1399 | تعداد بازدید : 9119 | زمان خواندن مقاله : 5 دقیقه
سی شارپ،

امروز می خواهیم به بحث entity framework در سی شارپ بپردازیم؛ اما قبل از آن باید به مفهوم یک کلمه به نام Orm برسیم. در زمان های دور یک برنامه نویس وقتی در محیط های برنامه نویسی مختلف کار میکرد دو قسمت کد نویسی داشت:

1. نوشتن خود کدهای برنامه با یکی از زبان های برنامه نویسی

2. استفاده از شیوه های قدیمی یا سنتی برای دسترسی به اطلاعات DBMS یا عمل Query گرفتن که باید به شکل SQL نوشته می شد و این کار را خیلی خیلی سخت میکرد تا اینکه ORM وارد کار شد. ORM در واقع ابزاری است که به برنامه نویس میگه، کاری به نوشتن Query های دیتابیس ها نداشته باش، کد مورد نظرت را بنویس و بده به من؛ من هم به عنوان واسط بین کدها و دیتابیس میام و Query ها را تولید می کنم و اینجوری باعث میشه دنیا برای برنامه نویس ها بسیار زیباتر بشه چرا؟ چون دیگر نیازی نیست که شما درگیر کدهای عجیب و غریب SQL بشید و اینکار را به عهده ORM می گذارید.
پس ORM عملا یک لایه مترجم بین زبان برنامه‌نویسی و پایگاه داده رابطه‌ای است که این دو را به هم تبدیل می‌کند.

برخی از کتابخانه های ORM دز زبان های برنامه نویسی مختلف

  • NHibernate و Entity Framework برای زبان C#
  • eloquent orm که در فریمورک Laravel وجود دارد برای زبان PHP
  • Hibernate برای زبان Java
  • SQLAlchemy برای زبان Python

تاریخچه Entity Framework در .Net:

تا اینجا فهمدیدم که ORM چیست و انواع آن کدامند. همان طور که در ابتدای مطلب هم گفتیم ما می خواهیم به بحث entity framework در سی شارپ بپردازیم. جالب است بدانید که مایکروسافت قبل از ارائه Entity Framework، برای اتصال به پایگاه داده، کار خود را با تکنولوژی ADO.NET آغاز کرد و نسخه های مختلفی از این تکنولوژی را عرضه کرد. بنابراین تعجبی ندارد که تمامی تکنولوژی های ارائه شده برای اتصال به پایگاه داده، با نام ADO.NET آغاز می شوند.

بعد از این تکنولوژی، مایکروسافت در ۲۰۱۰ visual studio مفهومی با نام LinqToSql را مطرح کرد. هدف مایکروسافت از ارائه این تکنولوژی، اتصال به هر نوع منبع داده با یک روش یکسان بود. تکنولوژی های ADO.NET و ADO.NET LinqtoSql به صورت From Database هستند. با گسترش و استفاده برنامه نویسان از مفاهیم شی گرایی، کمبودی در زمینه کار با پایگاه داده به صورت شی گرایی حس شد چرا که تا آن زمان تکنولوژی های ارائه شده برای اتصال به پایگاه داده توسط مایکروسافت به صورت کامل این امکان را نداشتند که با پایگاه داده به صورت شی گرایی کار کنند.

آموزش سی شارپ

تا اینکه Entity به عنوان یک فریم ورک، برای پیاده سازی تکنیک برنامه نویسی شی گرایی معرفی شد. درواقع entity framwork تکنولوژی توسعه یافته ADO.Net است که فاصله بین برنامه نویسی شی گرایی و بانک اطلاعاتی رابطه ای را پر می کند و هدف از این تکنولوژی، به حداقل رساندن مشکلات و نقایصی چون به خوبی انجام نگرفتن تبدیل نوع در فراخوانی از جداول در SQL، کاهش سرعت برنامه و ایجاد مشکل بخاطر اجرای چند باره دستورالعمل ها و خوب انجام نشدن پروسه Cash شدن دستورالعمل ها در SQL در روش های قبل مانند Ad-Hoc ،Parametric و Stored Procedure از کلاس های کتابخانه ADO.NET بود. 

بیشتر بخوانید: آموزش sql server به همراه تعداد زیادی درس رایگان!


حالت های پیاده سازی Entity Framework در سی شارپ:

اینکار به سه روش انجام می شود:

 

  1.  Database First:

این روش، قدیمی ترین روش طراحی در Entity Framework می باشد که در اولین نسخه این فریم ورک ارائه شد. برای استفاده از آن، ابتدا پایگاه داده طراحی می شود.

  1. Model First:

برای اولین بار این روش در نسخه ۲۰۱۰ Visual studio پشتیبانی شد. وقتی بخواهیم سیستم را از روی مدل پیاده سازی کنیم و پس از آن کدنویسی و ایجاد پایگاه داده را انجام دهیم از روش Model First استفاده می کنیم.

  1. Code First:

اگر از قبل، ماژول ها و کلاس های برنامه را آماده داشته باشیم و یا ابتدا قصد کدنویسی داشته باشیم از روش Code First استفاده می کنیم.

 

مزایای استفاده از Entity Framework در سی شارپ:

  • آسان کردن تغییر بانک اطلاعاتی:

وقتی شما با یک بانک اطلاعاتی مثل SQL Server کار می کنید و بعد از گذشت یک مدت میخواهید بانک اطلاعاتی خود را از SQL Server به SQLight تغییر بدید این کار را برای ما به راحتی انجام می دهد.

  • کوئری نویسی با استفاده از LINQ در Entity Framework:

با کوئری نویسی از طریق LINQ خطر حمله SQL Injection تقریبا به صفر می رسد.

  • چند سکویی بودن

یعنی قابلیت اجرا روی سیستم عامل های مختلف مثل Mac و Linux را داراست.

  • پشتیبانی از اکثر بانک های اطلاعاتی

  • OpenSource بودن و کاهش زمان برنامه نویسی

  • آسان کردن query های پیچیده با خاصیت Navigation Property

  • تفکیک و طبقه بندی قسمت های مختلف نرم افزار با هدف درک بهتر برای انجام تغییر به وسیله برنامه نویس

  • توانایی ارتباط قدرتمند با LINQ برای انجام CRUD

کلام آخر:

دوستان عزیز امیدوارم که توانسته باشم، شما را با تکنولوژی Entity Framework در سی شارپ آشنا کنم. راستی اگر بخواهم به کاربردهای آن هم اشاره کنم، می توان: اتوماسیون تحت وب و ویندوز، نرم افزار شرکت های پخش مویرگی و نرم افزارها و وب سایت  های فروشگاهی را نام برد.

افرادی که می خواهید این تکنولوژی را به صورت کاربردی یاد بگیرید، بدانید و آگاه باشید که قبل از آن باید با مفاهیمی چون شی گرایی و کار با ADO.Net سنتی را بلد باشید و اگر آشنا نیستید، نگران نباشید می توانید از آموزش سی شارپ ما در سایت بهره ببرید.
از اینکه ما را همراهی کردید سپاسگذاریم.


کلمات کلیدی :
سی شارپ