ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





نمایش نتیجه های نظرسنجی ها: آیا آموزش ها برایتان مفید و مناسب بود؟

رأی دهندگان
0. شما نمی توانید در این نظرسنجی رای دهید.
  • بله

    0 0%
  • خیر

    0 0%
نمایش نتایج: از 1 به 5 از 5
Like Tree2Likes
  • 1 Post By tahlildadeh
  • 1 Post By tahlildadeh

موضوع: آموزش Entity Framework

  1. #1
    tahlildadeh
    كاربر عادي
    تاریخ عضویت
    2014 Dec
    نوشته ها
    26
    0
    7

    آموزش Entity Framework

    آموزش Entity Framework : بخش اول - code first چیست؟

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

    در اولین پست، ابتدا به بیان اینکه [برای نمایش لینک باید عضو شوید. ] می پردازیم:

    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 ببینید.

    منبع مقاله های آموزشی که در اختیار شما دوستای عزیز می ذارم : [برای نمایش لینک باید عضو شوید. ]
    salehi likes this.
  2. 1
  3. #2
    tahlildadeh
    كاربر عادي
    تاریخ عضویت
    2014 Dec
    نوشته ها
    26
    0
    7
    آموزش Entity Framework : مثال ساده ای از Code-First

    در این پست به بررسی یک مثال ساده 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 در پست های بعدی همراه باشید.
  4. 1
  5. #3
    tahlildadeh
    كاربر عادي
    تاریخ عضویت
    2014 Dec
    نوشته ها
    26
    0
    7
    [برای نمایش لینک باید عضو شوید. ] : آموزش [برای نمایش لینک باید عضو شوید. ]

    در ادامه [برای نمایش لینک باید عضو شوید. ] به آموزش [برای نمایش لینک باید عضو شوید. ] می پردازیم.


    اکنون مشاهده خواهیم کرد که چگونه یک پایگاه داده در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()
    }
    }
    }




    در فصل بعدی از [برای نمایش لینک باید عضو شوید. ] به بررسی [برای نمایش لینک باید عضو شوید. ] می پردازیم.

    در صورت تمایل می توانید مجموعه کامل [برای نمایش لینک باید عضو شوید. ] را مشاهده نمائید.
  6. 1
  7. #4
    tahlildadeh
    كاربر عادي
    تاریخ عضویت
    2014 Dec
    نوشته ها
    26
    0
    7
    در ادامه [برای نمایش لینک باید عضو شوید. ] به [برای نمایش لینک باید عضو شوید. ] می پردازیم.

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

    چهار استراتژی متفاوت راه اندازی پایگاه داده وجود دارند:

    1. CreateDatabaseIfNotExists :این حالت پیش فرض است ،همانطور که از اسمش پیداست پایگاه داده را زمانی که طبق پیکربندی هیچ پایگاه داده ای وجود نداشته باشد را ایجاد می کند.هر چند اگر شما مدل کلاس را تغییر داده و سپس application را با این راه انداز اجرا کنید ،خوب یک خطا یا Exception روی خواهد داد.

    2. DropCreateDatabaseIfModelChanges :اگر مدل کلاس هایتان(entity classes) تغییر کنند، این راه انداز پایگاه داده موجود را حذف نموده و یک پایگاه داده جدید را ایجاد می کند.بنابراین موقعی که مدل کلاس هایتان تغییر کند نگران حفظ الگو(Schema)پایگاه داده یتان نباشید .

    3. DropCreateDatabaseAlways: همانطور که از اسمش پیداست این راه انداز هر دفعه که شما Application را اجرا کنید پایگاه داده موجود را حذف می کند ،صرف نظر از اینکه مدل کلاس هایتان تغییر کرده یا نه.این می تواند زمانی مفید باشد که شما در هر دفعه از اجرای Application پایگاه داده جدید بخواهید و همینطور در زمان توسعه Application.

    4. Custom DB Initializer:اگر هیچ یک از راه اندازهای ایجاده پایگاه داده در بالا نیاز های شما را تامین نمی کند یا شما می خواهید فرایند دیگری را که پایگاه داده را با استفاده از initializer های بالا آغاز کنید ،خوب در این صورت می توانید راه انداز سفارشی خودتان را ایجاد کنید.

    برای استفاده از استراتژی های DB initialization مطرح شده در بالا ،باید DB Initializerرا با استفاده از کلاس پایگاه داده در کلاس Context به شرح زیر به کار برید:

    public class SchoolDBContext: DbContext
    {
    public SchoolDBContext(): base("SchoolDBConnectionString")
    {
    Database.SetInitializer<SchoolDBContext>(new CreateDatabaseIfNotExists<SchoolDBContext>());
    //Database.SetInitializer(new DropCreateDatabaseIfModelChanges());
    //Database.SetInitializer(new DropCreateDatabaseAlways());
    //Database.SetInitializer(new SchoolDBInitializer());
    }
    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
    }


    شما می توانید DB initializer خودتان را به وسیله ارث بری از یکی از راه اندازها همان طور که در پایین نشان داده شده است راایجاد کنید.

    public class SchoolDBInitializer : DropCreateDatabaseAlways<SchoolDBContext>
    {
    protected override void Seed(SchoolDBContext context)
    {
    base.Seed(context);
    }
    }


    همان طور که در کد بالا می بینید ما کلاس جدید SchoolDBInitializer را که از DropCreateDatabaseAlways مشتق گرفته شده است را ایجاد کرده ایم.
    تنظیم db initializer در فایل configuration :

    شما می تواند db initializer در فایل configuration را نیز تنظیم کنید.برای مثال برای تنظیم پیش فرض initializer در app.config باید:

    xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key="DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer" value="System.Data.Entity.DropCreateDatabaseAlways`1[[SchoolDataLayer.SchoolDBContext, SchoolDataLayer]], EntityFramework" />
    appSettings>
    configuration>


    و همین طور می تواند db initializer به شرح زیر به صورت سفارشی تنظیم کنید.

    xml version=”1.0” encoding=”utf-8” ?>

    <configuration>
    <appSettings>
    <add key=”DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer”
    value=”SchoolDataLayer.SchoolDBInitializer, SchoolDataLayer” />
    appSettings>
    configuration>


    بنابراین بدین طریق شما می توانید استراتژی DB initialization برای Application تان به کار ببرید.

    در بخش بعدی از [برای نمایش لینک باید عضو شوید. ] به آموزش [برای نمایش لینک باید عضو شوید. ]

    با عرض پوزش به خاطر به هم ریختگی هایی که در قسمت کدها مشاهده میشه...اینجا مشکل ویرایشگر هستش توی سایت و مقداری محدودیت دارم برای ورود اطلاعات به صورت مناسب و صحیح.
    مطالب کامل رو می تونین از قسمت [برای نمایش لینک باید عضو شوید. ] دنبال کنین.
  8. 1
  9. #5
    tahlildadeh
    كاربر عادي
    تاریخ عضویت
    2014 Dec
    نوشته ها
    26
    0
    7
    [برای نمایش لینک باید عضو شوید. ] : [برای نمایش لینک باید عضو شوید. ]
    در این بخش از [برای نمایش لینک باید عضو شوید. ] می خواهیم به بررسی [برای نمایش لینک باید عضو شوید. ] بپردازیم.
    شما همچنین می توانید DB initializer را در Application تان غیر فعال کنید.فرض بر این که در محیط تولید شما نمی خواهید هیچ داده ای را از دست بدهید ، خوب می توانید DB initializer همان طور که در پایین نشان داده شده است را غیرفعال کنید.

    public class SchoolDBContext: DbContext
    {
    public SchoolDBContext() : base("SchoolDBConnectionString")
    {
    //Disable initializer
    Database.SetInitializer<SchoolDBContext>(null);
    }
    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
    }


    شما همچنین می توانید DB initializer را در فایل configuration را هم غیر فعال کنید.

    < xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key="DatabaseInitializerForType SchoolDataLayer.SchoolDBContext, SchoolDataLayer"
    value="Disabled" />
    appSettings>
    configuration>


    در فصل بعدی از [برای نمایش لینک باید عضو شوید. ] به آموزش [برای نمایش لینک باید عضو شوید. ] می پردازیم.

    در صورت تمایل می توانید [برای نمایش لینک باید عضو شوید. ] را مشاهده نمائید.
    salehi likes this.
  10. 1
نمایش نتایج: از 1 به 5 از 5

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

Content Relevant URLs by vBSEO 3.6.0 RC 2