
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترآموزش Entity Framework Code First

Entity Framework برادر بزرگ L2S یا Linq to SQL می باشد که حاصل سال ها تلاش شرکت مایکروسافت می باشد. ADO.NET Entity Framework به گونه ای طراحی شده است تا توسعه دهندگان را قادر سازد در مقابل مدل های مرسوم مفهومی (conceptual)، از یک مدل جدید با امکان دسترسی و برنامه نویسی مستقیم بر اساس ساختار یک دیتابیس رایطه ای استفاده نمایند، هدف از تولید این مدل کاهش چشمگیر میزان کدنویسی، سهولت گسترش، ترمیم، بهبود و نگهداری برنامه ها بوده است.
مقالات Entity FrameWork

Entity Framework ، Code-First را از Framework 4.1 معرفی می کند. Code-First بیشتر در Domain Design مفید است ، در Code-First ،شما می توانید روی Domain Design تمرکز کنید و کلاس ها را طبق نیازهای Domain تان ایجاد کنید ، نه اینکه ابتدا پایگاه داده تان را طراحی کنید و بعد کلاس هایتان را مطابق با پایگاه داده یتان طراحی کیند. APIهای Code-First براساس موجودیت کلاس ایجاد و پیکر بندی می شوند.

Standard همان طور که در زیر نیز نشان داده شده است را بنویسید.(برای این مثال شما می توانید Entity Framework 4.1/4.3/5.0 را ببینید).

اکنون مشاهده خواهیم کرد که چگونه یک پایگاه داده در code-first application را راه اندازی می کنیم. شکل زیر یک فرآیند راه اندازی پایگاه داده را نشان می دهد که براساس پارامترهای ارسال شده به base constructor از کلاس Context که خود نیز از DbContext مشتق گرفته است.

شما در حال حاضر پایگاه داده یتان را بعد از اجرای code first application در همان مرحله اول ایجاد کرده اید اما هنگام اجرا برای دوم چگونه این کار انجام خواهد شد؟؟آیا هر بار که شما Application را اجرا می کنید یک پایگاه داده جدید ایجاد می کند؟در مورد محیط تولید چطور؟

غیر فعال کردن DB Initializer در Code-first


در Code-First ،طرح پایگاه داده یتان می تواند براساس طراحی کلاس های Domain تان باشد.شما می توانید Domain تان به روش شی گرا طراحی کنید،جایی که شما می توانید از ارث بری و چند ریختی استفاده کنید.مدل سیستم های شی گرا یک رابطه "has a " و "is a" دارد در حالی که مدل رابطه ای مبنی بر SQL فقط یک رابطه “has a” دارد.

همانطور که می دانید ،شما می توانید مدل entity data را از یک پایگاه داده موجود در Database-First ایجاد کنید.این EDM همه اطلاعات اصلی را در SSDL،CSDL،وMSL را دارد.بنابراین EF می تواند از این مدل در query ها ،ردیابی تغییرات ،قابلیت های بهنگام سازی و غیره استفاده نماید.به همین روش entity framework Code-First به شما این اجازه را می دهد

EF Code-First یک مجموعه از ویژگی های DataAnnotation را فراهم می کند که می توانید این ویزگی ها را روی خصوصیات و کلاس های Domain به کار برید.برای استفاده از DataAnnotation شما باید namespace , System.ComponentModel.DataAnnotations را وارد کنید.

همانطور که در قسمت قبلی مشاهده کردید , شما می توانید کلاس های Domain تان را به وسیله دوباره نوشتن متد OnModelCreating از DBContex در کلاس contextپیکربندی کنید.

درک کلاس EntityTypeConfiguration بسیار مهم است زیرا این کلاس برای اجرای پیکربندی برای یک نوع entity در مدل مهم است .که به وسیله فراخواندن موجودیت <tentity> که متدی از کلاس DbModelBuilder است به دست می آید.


ما در اینجا رابطه یک به یک را بین کلاس Student و کلاس StudentAddress پیکربندی می کنیم.همانطور که می دانید رابطه یک به یک زمانی برقرار می شود که کلید اولیه یک جدول تبدیل به PK و در جدول دیگری به FK(کلید خارجی)تبدیل می شود. StudentId کلید اولیه جدول Student است ,بنابراین StudentId کلید اولیه باشد

خوب ما قصد داریم یک رابطه یک به چند بین کلاس های Student و Standard را پیاده سازی کنیم همانطور که بسیاری از دانشجویان در یک استاندارد تحصیل می کنند.


Entity framework Code-First استراتژی های پایگاه داده راه انداز مختلفی مقدم تر بر EF 4.3 دارد مانند CreateDatabaseIfNotExists, DropCreateDatabaseIfModelChanges DropCreateDatabaseAlways .هر چند این استراتژی ها مشکلاتی هم دارند برای مثال اگر شما داده ای دارید (seed data) یا Procedure و triggers ذخیره شده دارید ،این استراتزی ها کل پایگاه داده را حذف و دوباره آن را ایجاد می کند

Entity framework 4.3 ، Automated Migration را معرفی کرده است به طوری که برای هر تغییر ی که در کلاس های Domain ایجاد می کنید نیازی ندارید Migration پایگاه داده را به صورت دستی در code file ذخیره کنید، شما فقط نیاز به اجرای یک دسنور در Package Manger Console دارید.

Code based migration زمانی مفید است که شما می خواهید کنترل بیشتری بر migration داشته باشید برای مثال مقدار پیش فرض ستون را Set کنید.

ابزارهای Entity Framework Power (در حال حاضر ورژن بتای 3)که عرضه شده است.ابزارهای Entity Framework Power در مهندسی معکوس و تولید مدل داده ای فقط خواندنی برای code-first مفید است. ابزارهای Power Tools را از لینک Visualstudiogallery دانلود و نصب کنید.

Entity Framework 6.0 Introduction

شما می توانید از مزیت اجرای غیر هم زمان .net 4.5 با entity framework استفاده کنید.EF 6 می تواند با استفاده از DbContext به طور غیر هم زمان یک query و دستور را اجرا کند.

Entity Framework 6 چیزی به اسم code based configuration معرفی کرده است.بنابراین شما می توانید تنظیمات مرتبط با entity framework با استفاده از کد که قبلا در قسمت <entityframework> از فایل app.config پیکربندی شده است را پیکربندی کرد

در این قسمت نحوه نشان دادن دستورات و پرس و جوی های ارسال شده به پایگاه داده به وسیله Entity Framework را یاد خواهید گرفت. ما ازابزارهای پایگاه داده نظیر tracing tool و tracing utility برای ردگیری دستورات و پرس و جوی های ارسال شده به وسیله Entity Framework نسبت به EF 6 , استفاده می کنیم. اکنون EF 6 یک مکانیسم ساده ای است برای نشان دادن هر چیزی را که Entity Framework انجام می دهد.





Code First - Insert, Update, Delete
