برای دسترسی به داده ها روش های مختلفی معرفی شده اند، اما همیشه جای خالی یک مدل مفهومی برای برنامه نویسان احساس میشد که بتواند تا حدودی ما را از دنیای پایگاه داده دور کند. با پیشرفت چشم گیر زبان های برنامه نویسی، برنامه نویسی شی گراء از ارزش قابل توجهی در بین توسعه گران برخوردار گشت. به همین دلیل ایجاد روشی برای یکپارچه کردن و ساده سازی دسترسی به داده ، همراه با بهره بردن از مفاهیم شیء گرایی در آن مورد توجه قرار گرفت. اولین تلاش ماکروسافت در این زمینه ارائه LINQ To SQL و Entity Frame Work بود. Entity Frame Work به طور جدی به عنوان بستر اصلی ماکروسافت به منظور دسترسی به داده ها مورد توجه است.
در این دوره هدف ما آشنایی شما با یک O/RM متن بازِ ارائه شده توسط ماکروسافت به نام Entity Frame Work و قابلیت های آن برای از بین بردن شکاف بین زبان برنامه نویسی و پایگاه داده است. به گونه ای که شما با استفاده از Entity Frame Work به این توانایی دست پیدا کنید تا در مقابل مدل های مفهومی ، از یک مدل جدید با امکان دسترسی و برنامه نویسی مستقیم بر اساس ساختار یک پایگاه داده استفاده نمایید . در نتیجه شاهد کاهش میزان کد نویسی ، راحتی در گسترش ، بهبود و نگهداری برنامه باشید. پس به طور کلی در این دوره هدف های زیر را دنبال خواهیم کرد :
آموزش Entity Frame Work به افرادی که تا کنون با این تکنولوژی آشنایی نداشته اند.
تعریف Entity Frame Work به عنوان تکنولوژی جدید دسترسی به داده ها و آمادگی ذهن مخاطب برای استفاده از آن در برنامه های کاربردی.
معرفی قابلیت های نسخه جدید Entity Frame Work به افرادی که قبلا با این تکنولوژی آشنایی داشته اند.
آموزش نسخه ی Entity Frame Work 5.0 به عنوان نسخه ی مهم ارائه شده توسط ماکروسافت و در نهایت بررسی ویژگی های اضافه شده به نسخه ی Entity Frame Work 6 همراه با مثال های کاربردی.
در این آموزش قابلیت های Entity Frame Work در قالب یک پروژه مورد بررسی قرار گرفته است و روند تکمیل آموزش به این صورت خواهد بود که ابتدا روش های استفاده از Entity Frame Work را بررسی خواهد شد و پروژه ای با روش Data Base Firstایجاد می شود و اکثر ویژگی های مهم و کاربردی این تکنولوژی را در این پروژه به همراه مثال معرفی خواهد شد. پس از اتمام این قسمت که شامل 4 فصل کامل است روش Code First و Model Firstدر قالب پروژه آموزش داده می شود. برای آموزش این قسمت ها از نسخه 5 آنکه به عنوان یک نسخه ی مهم معرفی شده استفاده می شود. در نهایت پس از آشنایی شما با این نسخه ویژگی های نسخه ی 6در قالب پروژه مورد بررسی قرار می گیرد.
پیش نیاز این دوره آشنایی مقدماتی با #C می باشد.
سرفصل دوره آموزشی (مدت زمان : بیش از 5 ساعت)
فصل اول آشنایی با Entity Frame Work :
هدف Entity Frame Work چیست ؟
بررسی تکنولوژی های دسترسی به داده ها
Entity Frame Work چیست ؟
معرفی و بررسی چارچوب O/RM
چرا از Entity Frame Work استفاده کنیم ؟
بررسی معماری Entity Frame Work
فصل دوم شروع کار با (EntityFramework (Database First:
بررسی روش های استفاده از Entity Frame Work
روش Data Base First
روش Model First
روش Code First
معرفی ابزار های مورد نیاز برای شروع یک آموزش پایه
تعریف پروژه و طراحی دیتابیس
شروع کار با Data Base First
ایجاد یک Entity Data Model
بررسی EDM Designer
پنجره ی Mapping Details
پنجره ی Model Browser
ایجاد دیاگرام های متعدد
اختصاص رنگ دلخواه به هر یک از Entity ها
مهاجرت از EF 4.x به EF 5.0
انواع Entity در Entity Frame Work
تعریف کلاس POCO (Plain Old CLR Object)
بررسی Dynamic Proxy
نحوه ی گرفتن تایپ واقعی یک Dynamic Proxy
تعریف Scalar Properties
تعریف Navigation Properties
کوئری در Entity Frame Work
L2E (LINQ To Entities).
معرفی LINQ Method Syntax (Lamda Expression) همراه با مثال
معرفی LINQ Query Syntax همراه با مثال
Entity SQL
کلاس Entity Connection همراه با مثال
کلاس Entity Command همراه با مثال
Native SQL همراه با مثال.
آشنایی با Entity Life Cycle
روابط بین Entity ها
یک به یک
یک به چند
چند به چند
تعریف Entity گراف
فصل سوم کار با Entity ها
آشنایی با Projection کوئری
First/FirstOrDefault
Single/SingleOrDefault
ToList
GroupBy
OrderBy
Anonymous Class Result
Nested کوئری
آشنایی با Eager Loading
استفاده از متد Include همراه با مثال
نحوه ی لود شدن سطوح چندگانه از Entity های مرتبط همراه با مثال
آشنایی با Lazy Loading
غیر فعال کردن Lazy Loading
معرفی قوانین Lazy Loading
آشنایی با Explicit Loading
استفاده از متد های References و Entry همراه با مثال
فراخوانی استاندارد یک Entity با استفاده از متد Load همراه با مثال
آشنایی با کلاس DBContext
Querying
Change Tracking
Persisting Data
نحوه ی گرفتن رفرنس ObjectContext از DBContext همراه با مثال
آشنایی با متدها و پروپرتی های مهم کلاس DBContext
متد های Public
متدهای protected
پروپرتی های Public
آشنایی با کلاس DBset
معرفی متد های مهم DbSet
آشنایی با کلاس DBEntryEntity
معرفی کلاس های مهم DBEntryEntity
کار با Entity Property Value
معرفی پروپرتی های مهم کلاس DBPropertyEntry همراه با مثال
آشنایی با Local Data همراه با مثال
اجرای Native SQL کوئری
کوئری SQL برای تایپ های Entity همراه با مثال
کوئری SQL برای تایپ های غیر Entity همراه با مثال
دستورات خام SQL در دیتا بیس همراه با مثال
اعتبار سنجی Entity
استفاده از متد ValidateEntity همراه با مثال
ماندگاری در Entity Frame Work
معرفی Connected Scenario
معرفی Disconnected Scenario
عملیات CURD در Connected Scenario همراه با مثال
الحاق Entity گراف در Disconnected Scenario
افزودن ، ویرایش و حذف Entity با استفاده از DBContext همراه با مثال
افزودن Entity گراف با استفاده از Dbcontext همراه با مثال
ویرایش Entityگراف با استفاده از DbContext همراه با مثال.
تعریف مسئله و طراحی دو روش برای ویرایش Entity گراف همراه با مثال
بررسی همزمانی در Entity Frame Work همراه با مثال
آشنایی با Enum در Entity Frame Work
تبدیل پروپرتی Entity موجود ، از EDM Designer به Enum همراه با مثال
ایجاد یک Enum جدید از EDM Designer
استفاده از Enum موجود در یک namespace متفاوت
ایجاد یک Stored Procedure برای خواندن اطلاعات و بکارگیری در Entity Frame Work
عملیات CUD با استفاده از Stored Procedure به همراه مثال
بررسی Table-Valued فانکشن به همراه مثال
فصل چهارم : شروع کار با (EntityFramework (CodeFirst
ایجاد دیتابیس با استفاده از روش کد فرست
مقداردهی اولیه دیتابیس در کدفرست
استراتژی های مقداردهی اولیه دیتابیس در کدفرست
افزودن اطلاعات در زمان ایجاد و ویرایش به دیتابیس با استفاده از متد Seed
پیکربندی دامین کلاس
پیکربندی Entity ها و تنظیم روابط بین آنها با استفاده از قرارداده های پیش فرض، Data Annotation و Fluent API
بررسی روش های استفاده از مایگریشن در کدفرست (Automated Migration ، CodeBase Migration)
فصل پنجم : بررسی ویژگی های مهم EntityFramework 6
ایجاد کوئری و ذخیره کردن نامتقارن
پیکربندی مبتنی بر کد
بررسی دستورات ورودی و خروجی دیتابیس
کار با متدهای DbSet.AddRange و DbSet.RemoveRange برای افزودن و حذف کالکشنی از Entity ها
ایجاد قراردادهای سفارشی در CodeFirst
ایجاد Store Procedure ها برای عملیات CUD
بررسی اتریبیوت Index
ایجاد دیتابیس با استفاده از روش ModelFirst در EF6
به عنوان نمونه بخش هایی از این آموزش در ادامه آورده شده است :
بخشی از آموزش "ایجاد پروژه از طریق ِDataBase First (فصل دوم)
سرفصل های آموزشی و همچنین چند نمونه ویدیوی آموزشی در این بخش وجود دارد و آموزش شامل همین مطالب است. خوشحال می شویم از جزئیات انتظارات شما مطلع شویم تا در این دوره آنها را لحاظ کنیم.
امروز اختلالاتی در سرور داشتیم، الان تست شد مشکلی نبود. لطفا دوباره امتحان کنید. در صورتی که مشکل ادامه داشت از طریق info[at]tamr.in مشکل را پیگیری نمایید.
سلام خسته نباشید من این آموزش رو میخوام بخرم حجمش چقدر و اینکه کیفیت محتوای آموزشیش چطوریه
کد تخفیف ندارید بهم بدید 25 هزار زیاده بهم تخفیف بدید ممنونم
سلام
امیدوارم آموزش های خوبتون همچنان ادامه پیدا کنه
حقیقتش من نمیدونم این سوال رو باید کجا بپرسم پس برایتان فرستادم چون هم مربوط میشه به فرست کد و هم ام وی سی
من یک مشکلی دارم که پس از گذشت چند ماه هنوز نتونسم اون رو حل کنم در قسمت ارتباط بین کلاس ها زمانی که ارتباط یک به یک ایجاد میکنم و کنترلر مربوطه رو ایجاد میکنم متاسفانه فقط به اطلاعات یک کلاس دسترسی دارم و برای وارد کردن اطلاعات کلاس دیگه باید یک کنترلر دیگه ایجاد کنم و از طریق اون اطلاعات جدول دیگه رو اضافه کنم آیا شیوه هست که بتونم بعد از ارتباط یک به یک با درست کردن یک کنترلر بتونم اطلاعات رو در یک ویو وارد کنم؟
Public Class Person
{
Person {}
[Key]
Public int Id {get; set;}
Public string Name {get; set;}
Public virtual Address Address {get; set;}
}
Public Class Address
{
Address {}
[ForeignKey("Person ")]
Public int AddressID {get; set;}
Public string City {get; set;}
Public virtual Person Person{get; set;}
}
زمانی که من کنترلر کلاس پرسن رو ایجاد میکنم فقط . فقط میتونم فیلد نام رو پر کنم و برای پر کردن اطلاعات فیلد شهر در کلاس آدرس باید یک کنترلر مجزا براش ایجاد کنم اما میخوام همش در یک ویو نمایش داده بشه و بتونم بهش دسترسی داشته باشم
پاسخ سوال فاطمه می تونه به شرح زیر باشه
برای تغییر نام در دیتا بیس و نیز مشخص کردن دیال تایپ در دیتا بیس از پراپرتی زیر استفاده کنید.
The Column annotation is a more adept in specifying the attributes of a mapped column. You can stipulate a name, data type or even the order in which a column appears in the table. Here is an example of the Column attribute.
[Column(“BlogDescription", TypeName="ntext")]
public String Description {get;set;}
راهنمای استفاده از محتوای آموزشی سایت (حتما پیش از خرید مطالعه کنید)
دو نوع محصول در سایت موجود است. محصولات رایگان و محصولاتی با قیمت مشخص. در صورتی که یک محصول رایگان باشد به سادگی از طریق لینک های موجود در توضیحات مربوط به آن محصول، میتوانید آن را دانلود نمایید.
در صورتی که محصول برای خرید در سایت قرار داده شده باشد باید مراحل زیر را طی نمایید :
1. پس از ثبت نام و لاگین شدن، روی قیمت محصول مورد نظر کلیک کنید تا در سبد خرید ثبت شود، سبد شما در بالای صفحه سمت چپ قابل رویت است
2. میتوانید چندین محصول را انتخاب نمایید تا در سبد خرید شما ثبت شود
3. پس از پایان تقاضا، روی سبد خرید کلیک نمایید تا به صفحه ی مربوط به محصولات انتخاب شده هدایت شوید
4. پس از چک کردن نام محصولات با کلیک روی پرداخت آنلاین میتوانید هزینه محصولاتی که انتخاب نموده اید را پرداخت کنید
5. چنانچه پرداخت با موفقیت انجام شود صفحه ی حاوی شماره خرید و همچنین اعلام موفقیت برای شما نمایش داده میشود
6. از این پس با مراجعه به صفحات مربوط به محصولات خریداری شده(مثلا همین صفحه) میتوانید لینک های دانلود آنها را نیز ببینید، به شرط آنکه لاگین شده باشید
نظرات (18)
بی نام
1393/12/22 04:41 صبحچرا حجمش اتقد زیاده؟کیفیتش بالاس یا موضوعاتش طولانیه؟انقد مطلب مهمی هست؟
پاسخعلی
1394/01/25 05:45 عصرآموزش خیلی ضعیف و غیرکاربردی و فقط در حد تعاریف بود.
پاسخمدیرسایت
1394/01/25 08:18 عصرسرفصل های آموزشی و همچنین چند نمونه ویدیوی آموزشی در این بخش وجود دارد و آموزش شامل همین مطالب است. خوشحال می شویم از جزئیات انتظارات شما مطلع شویم تا در این دوره آنها را لحاظ کنیم.
پاسخمصطفی
1394/09/02 03:32 عصرمن آموزش ساخت فروشگاه با mvc رو دارم راحت میبینم ولی این آموزش رو هی داره ارور میده باز میکنه تنظیماتم مثل آموزش های دیگه رفتم ولی این یکی نمیاد
پاسخمدیرسایت
1394/09/02 04:29 عصرممنون از خریدتون. لطفا ایمیل خود را بررسی کنید.
پاسخبی نام
1394/11/14 09:16 عصرسلام من محصول را خریداری کرده ام اما دانلود نمیشود. مشکلی از نظر سرعت اینترنت هم ندارم. لطفا رسیدگی کنید.
پاسخمدیرسایت
1394/11/14 10:28 عصرامروز اختلالاتی در سرور داشتیم، الان تست شد مشکلی نبود. لطفا دوباره امتحان کنید. در صورتی که مشکل ادامه داشت از طریق info[at]tamr.in مشکل را پیگیری نمایید.
پاسخعلی
1395/02/02 01:28 صبحسلام خسته نباشید من این آموزش رو میخوام بخرم حجمش چقدر و اینکه کیفیت محتوای آموزشیش چطوریه کد تخفیف ندارید بهم بدید 25 هزار زیاده بهم تخفیف بدید ممنونم
پاسخ،اطمه
1395/08/02 12:48 عصرسلام وقت بخیر میخاستم بدونم برای ایجاد فیلد ntext در دیتابیس از چه atrributeای استفاده کنم ؟ ممنون از سایت خوبتون
پاسخXerxes
1395/08/12 12:30 صبحسلام امیدوارم آموزش های خوبتون همچنان ادامه پیدا کنه حقیقتش من نمیدونم این سوال رو باید کجا بپرسم پس برایتان فرستادم چون هم مربوط میشه به فرست کد و هم ام وی سی من یک مشکلی دارم که پس از گذشت چند ماه هنوز نتونسم اون رو حل کنم در قسمت ارتباط بین کلاس ها زمانی که ارتباط یک به یک ایجاد میکنم و کنترلر مربوطه رو ایجاد میکنم متاسفانه فقط به اطلاعات یک کلاس دسترسی دارم و برای وارد کردن اطلاعات کلاس دیگه باید یک کنترلر دیگه ایجاد کنم و از طریق اون اطلاعات جدول دیگه رو اضافه کنم آیا شیوه هست که بتونم بعد از ارتباط یک به یک با درست کردن یک کنترلر بتونم اطلاعات رو در یک ویو وارد کنم؟ Public Class Person { Person {} [Key] Public int Id {get; set;} Public string Name {get; set;} Public virtual Address Address {get; set;} } Public Class Address { Address {} [ForeignKey("Person ")] Public int AddressID {get; set;} Public string City {get; set;} Public virtual Person Person{get; set;} } زمانی که من کنترلر کلاس پرسن رو ایجاد میکنم فقط . فقط میتونم فیلد نام رو پر کنم و برای پر کردن اطلاعات فیلد شهر در کلاس آدرس باید یک کنترلر مجزا براش ایجاد کنم اما میخوام همش در یک ویو نمایش داده بشه و بتونم بهش دسترسی داشته باشم
پاسخععلی
1396/01/19 06:15 عصرپاسخ سوال فاطمه می تونه به شرح زیر باشه برای تغییر نام در دیتا بیس و نیز مشخص کردن دیال تایپ در دیتا بیس از پراپرتی زیر استفاده کنید. The Column annotation is a more adept in specifying the attributes of a mapped column. You can stipulate a name, data type or even the order in which a column appears in the table. Here is an example of the Column attribute. [Column(“BlogDescription", TypeName="ntext")] public String Description {get;set;}
پاسخمحمدرضا خاکپور
1396/02/29 01:56 صبححجمش چقدره؟ درضمن آموزشها عملی هستن یا تئوری؟
پاسخبی نام
1396/03/21 01:04 صبحسلام من همه ی لینک هاتون تونستم دانلود کنم ولی این لینک ارور میده و نمی تونم دانلود کنم
پاسخبهنام
1396/10/03 11:50 عصرسلام من این مجموعه رو خریداری کردم ولی فایل دانلود مشکل داره و موقع اکسترکت کردن با winrar خطا میده خواهشا رسیدگی کنید
پاسخمدیرسایت
1396/10/04 12:09 عصرلطفا دوباره بررسی کنید. مشکل حل شد.
پاسخXerxes
1397/02/16 12:04 صبحسلام ممنون از آموزش هاتون چرا دانلود نمیشه؟
پاسخرضا جعفری
1397/10/04 11:36 عصربا عرض سلامتشکر ویژه دارم به خاطر مطالب مفید و کاربردی شمامتاسفانه لینک ها کار نمی کنندممنون میشم اگه لینک ها رو درست کنیدبا تشکر
پاسخمدیرسایت
1397/10/14 03:49 عصرمشکل برطرف شد.
پاسخ