tiago

New Member
ارسال ها
10
لایک ها
2
امتیاز
0
#1
آموزش Entity Framework : بخش اول - code first چیست؟

با سلام خدمت همه دوستان عزیز
می خوام از امروز یه سری آموزش Entity Framework رو اینجا قرار بدم تا همه عزیزان استفاده لازم و کافی رو ببرن..
امیدوارم که براتون مفید واقع بشه

در اولین پست، ابتدا به بیان اینکه code first چیست می پردازیم:

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

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

بنابراین جریان کار به شکل زیر خواهد بود:

کلاس های application ،Code-First را بنویسید--> برای اجرای برنامه F5 را فشار دهید -- > APIهای Code-First پایگاه داده جدید را ایجاد می کند یا کلاس ها را با یک پایگاه داده موجود اجرا می کند. -- > و در آخر برنامه را اجرا می کند.

مثال ساده Code-Frist را در قسمت بعدی از سری آموزش Entity Framework ببینید.

منبع مقاله های آموزشی که در اختیار شما دوستای عزیز می ذارم : آموزش Entity Framework


مثال ساده ای از Code-First



در ادامه این فصل از آموزش Entity Framework به مشاهده یک نمونه ساده از code first می پردازیم.

اولین مثال ساده Code-First را بسازیم:
در ویژوال استودیو ، Class Library project را ایجاد کنید و دو کلاس ساده Student و Standard همان طور که در زیر نیز نشان داده شده است را بنویسید.(برای این مثال شما می توانید Entity Framework 4.1/4.3/5.0 را ببینید).


کد
 Student Class:

 publicclassStudent
 {
 public Student()
 {
 }
 publicint StudentID { get; set; }
 publicstring StudentName { get; set; }
 }
Standard Class:
 publicclassStandard
 {
 public Standard()
 {
 }
 publicint StandardId { get; set; }
 publicstring StandardName { get; set; }
 publicstring Description { get; set; }
 }


اکنون،یک context class ایجاد کنید که از کلاس DBContext با دو ویژگی DbSet یکی برای Student و دیگری برای Standard مشتق گرفته است.

و اکنون هم Console Project ایجاد کنید تا این کلاس ها را همانطور که در زیر هم نشان داده شده است تست کنید.

کد
 using (var ctx = new Context())
 {
 Student stud = new Student() { StudentName = "New Student" };
 ctx.Students.Add(stud);
 ctx.SaveChanges(); 
 }
اکنون اگر شما Application را اجرا کنید ،از اینکه Application با موفقیت اجرا می شود ،شگفت زده خواهید شد.

Application با موفقیت اطلاعات Student را در پایگاه داده ذخیره کرده است اما پایگاه داده کجاست و جدول ها و ستون های آن چه چیزی هستند؟

این زیبایی API های Code-First ، Entity Framework است که پایگاه داده را بر اساس پارمترهایی که به سازنده اصلی کلاس context داده شده است ،ایجاد می کند.خوب ما هیچ پارامتری را به آن ارسال نکردیم ،بنابراین پایگاه داده "SchoolDataLayer.Context" را در SQLEXPRESS محلی ایجاد می کند.جریان کار پایگاه داده را در قسمت بعدی مشاهده خواهیم کرد.

Code-first API دو جدول را نیز در پایگاه داده ایجاد می کند ، جدول های Students و Standards براساس کلاس های Student وStandard. Code-first API یک کلید اولیه(Primary Key) در جدول ایجاد می کند اگر کلاس Id یا ویژگی Id را داشته باشد.برای مثال کلاس Student ویژگی StudentId را دارد ،بنابراین StudentId را به عنوان کلید آولیه(PK) ایجاد می کند.و همینطور ستون ها را با همین اسم و نوع داده ایجاد می کند ،که اسم Property ها و نوع داده در زیر نشان داده شده است.



خوب در این روش بدون ایجاد پایگاه داده ،شما می توانید Application هایی را بنویسید که در نهایت پایگاه داده را از کلاس های Domain تان ایجاد می کند.
با ادامه دوره آموزش Entity Framework در پست های بعدی همراه باشید.
 

tiago

New Member
ارسال ها
10
لایک ها
2
امتیاز
0
#2
پاسخ : آموزش Entity Framework

آموزش Entity Framework : آموزش مقدار دهی و قالب بندی بانک اطلاعاتی

در ادامه دوره آموزش Entity Framework به آموزش نحوه مقداردهی و قالب بندی بانک اطلاعاتی می پردازیم.


اکنون مشاهده خواهیم کرد که چگونه یک پایگاه داده درcode-first application را راه اندازی می کنیم:

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


مطابق شکل بالا شما می توانید پارامترهای زیر را به base constructor ارسال کنید.


بدون پارامتر:اگر شما هیچ پارامتری را ارسال نکنید ،پایگاه داده را در SQLEXPRESS محلی تان با اسمی که مطابق {Namespace}.{Context class name}. است ،ایجاد می کند برای مثال SchoolDataLayer.Context


Name :اگر شما پارامتر Name را ارسال کنید پایگاه داده را در local SQLEXPRESS db server با همان اسم ارسال شده ایجاد می کند.برای مثال قطعه کد زیر یک پایگاه داده با اسم "SchoolDB-CodeFirst" را ایجاد می کند.


کد:

کد
 public class Context: DbContext
{
 public Context(): base("SchoolDB-CodeFirst")
 }
}
}
}
 }

ConnectionStringName:اگر شما اسم connection string را از app.config یا web.config ارسال کنید ، پایگاه داده را با همان connection string ایجاد می کند.برای مثال قطعه کد زیر یک پایگاه داده "SchoolDB-ByConnectionString" را ایجاد می کند.


کد:

کد
 public class Context: DbContext
 {
 public SchoolDBContext() : base("SchoolDBConnectionString")
 }
}
}

App.config:


کد:

کد
 < xmlversion="1.0"encoding="utf-8" ?>

 <configuration>
 <connectionStrings>
 <"addname="SchoolDBConnectionString>
 connectionString="Data Source=.;Initial Catalog=SchoolDB-ByConnectionString;Integrated Security=true
 "providerName="System.Data.SqlClient"/>
 connectionStrings>
 configuration>

کلاس Context بالا یک اسم connection string به عنوان پارامتر ارسال می کند.بنابراین پایگاه داده "SchoolDB-ByConnectionString" را ایجاد کرده یا از پایگاه داده موجود "SchoolDB-ByConnectionString" در SQL Server استفاده می کند(زیرا ما "." را در SQLEXPRESS ذکر نکردیم).مطمئن شوید که شما providerName = "System.Data.SqlClient" را در connection string نوشته اید.

کد:

کد
 public class Context: DbContext
{
public Context(): base()
 }
 }
}
در فصل بعدی از آموزش Entity Framework به بررسی استراتژی های راه اندازی پایگاه داده در code first می پردازیم.

در صورت تمایل می توانید مجموعه کامل آموزش Entity Framework را مشاهده نمائید.
 
آخرین ویرایش توسط مدیر

tiago

New Member
ارسال ها
10
لایک ها
2
امتیاز
0
#3
پاسخ : آموزش Entity Framework

آموزش Entity Framework : استراتژی ارث بری در Code-First
در این بخش از آموزش Entity Framework می خواهیم به بررسی روش استراتژی ارث بری در Code-First بپردازیم.

در Code-First ،طرح پایگاه داده یتان می تواند براساس طراحی کلاس های Domain تان باشد.شما می توانید Domain تان به روش شی گرا طراحی کنید،جایی که شما می توانید از ارث بری و چند ریختی در Entity Framework استفاده کنید. مدل سیستم های شی گرا یک رابطه "has a " و "is a" دارد در حالی که مدل رابطه ای مبنی بر SQL فقط یک رابطه “has a” دارد.بنابراین چگونه شی گرایی را با پایگاه داده رابطه ای به کار می برید؟
در سلسه مراتب ارث بری سه روش به شرح ذیل موجود می باشد:
1. Table per Hierarchy (TPH): این روش یک جدول را برای کل کلاس ارث بری پیشنهاد می کند.ستون تفکیک کننده که بین کلاس های ارث بری تمایز قائل می شود نیز در جدول قرار دارد.
2. Table per Type (TPT) : این روش یک جدول برای هر کلاس پیبشنهاد می کند بدین گونه که هر کلاس یک جدول ماندگار دارد.
3. Table per Concrete class (TPC) : در این روش برای هر کلاس واقعی یک جدول وجود دارد و برای کلاس انتزاعی کلاسی وجود ندارد.خوب بنابراین اگر شما در چند کلاس واقعی از کلاس انتزاعی ارث بری کنید در این صورت خصوصیات کلاس انتزاعی به بخشی از کلاس واقعی تبدیل می شود.

در فصل بعدی از آموزش Entity Framework به آموزش پیکربندی کلاس های Domain در Code-First می پردازیم.

در صورت تمایل می توانید مجموعه کامل آموزش Entity Framework را مشاهده نمائید.
 
بالا