خرید بک لینک

EF Core ، در این آموزش، یک برنامه ی ASP.Net Core MVC میسازید که دسترسی پایه به داده ها را با استفاده از Entity Framework Core انجام می دهد.

این آموزش از مهاجرت ها برای ایجاد پایگاه داده از مدل داده ای استفاده می کند.

می توانید آموزش را با استفاده از ویژوال استودیو ۲۰۱۷ در ویندوز، یا با استفاده از .NET Core CLI در ویندوز، سیستم عامل مک، یا لینوکس دنبال کنید.

در این مقاله:

  • پیش نیازها
  • ایجاد یک پروژه ی جدید
  • نصب Entity Framework Core
  • ایجاد مدل
  • ثبت متن با تزریق وابستگی
  • ایجاد پایگاه داده
  • ایجاد یک کنترل کننده
  • اجرای برنامه
  • منابع بیشتر

پیش نیازهای EF Core

نرم افزار زیر را نصب کنید:

EF Core

EF Core

ایجاد یک پروژه ی جدید

EF Core

EF Core

EF Core

EF Core

نصب Entity Framework Core

برای نصب EF Core، پکیج مربوط به ارائه دهنده های پایگاه داده ی EF Core که می خواهید هدف قرار دهید را نصب می کنید.

برای مشاهده ی فهرستی از ارائه دهندگان موجود، صفحه ی ارائه دهندگان پایگاه داده را ببینید.

EF Core

ایجاد مدل

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

ویژوال استودیو:

  • بر روی پوشهی Models راست کلیک کرده و Add > Class را انتخاب کنید.
  • Model.cs را به عنوان نام وارد کرده و OK کنید.
  • محتوای فایل را با کد زیر جایگزین کنید:

سی شارپ:


using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

namespace EFGetStarted.AspNetCore.NewDb.Models
{
    public class BloggingContext : DbContext
    {
        public BloggingContext(DbContextOptions<BloggingContext> options)
            : base(options)
        { }

        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}

.NET Core CLI:

  • در پوشه ی Models، Model.cs را با کد زیر ایجاد کنید:

سی شارپ:

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

namespace EFGetStarted.AspNetCore.NewDb.Models
{
    public class BloggingContext : DbContext
    {
        public BloggingContext(DbContextOptions<BloggingContext> options)
            : base(options)
        { }

        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}

یک برنامه تولیدی بطور معمول هر کلاس را در یک فایل مجزا قرار می دهد.

به منظور سادگی، این آموزش این کلاس ها را در یک فایل قرار می دهد.

ثبت متن با تزریق وابستگی

سرویس ها (از جمله BloggingContext) در طول راه اندازی برنامه با تزریق وابستگی ثبت می شوند.

کامپوننت هایی که به این سرویس ها نیاز دارند (مانند کنترل کننده های MVC)، این سرویس ها از طریق پارامترهای سازنده (constructor parameters) یا ویژگی ها برایشان فراهم می شود.
به منظور در اختیار قرار دادن BloggingContext برای کنترل کننده های MVC، آن را به عنوان یک سرویس ثبت کنید.

ویژوال استودیو:

  • در Startup.cs عبارات using زیر را اضافه کنید:
using EFGetStarted.AspNetCore.NewDb.Models;
using Microsoft.EntityFrameworkCore;

  • کد هایلایت و مشخص شده ی زیر را به متد ConfigureServices اضافه کنید:
public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    <span style="color: #ff0000;">var coection = @"Server=(localdb)mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;
Trusted_Coection=True;CoectRetryCount=0";
    services.AddDbContext<BloggingContext>
        (options => options.UseSqlServer(coection));</span>
    // BloggingContext requires
    // using EFGetStarted.AspNetCore.NewDb.Models;
    // UseSqlServer requires
    // using Microsoft.EntityFrameworkCore;
}
  • در Startup.cs عبارات using زیر را اضافه کنید:
using EFGetStarted.AspNetCore.NewDb.Models;
using Microsoft.EntityFrameworkCore;

  • کد هایلایت و مشخص شده ی زیر را به متد ConfigureServices اضافه کنید:
public void ConfigureServices(IServiceCollection services)
{
    services.Configure<CookiePolicyOptions>(options =>
    {
        // This lambda determines whether user consent for non-essential cookies is needed for a given request.
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
    });

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    <span style="color: #ff0000;">var coection = "Data Source=blogging.db";
        services.AddDbContext<BloggingContext>
        (options => options.UseSqlite(coection));
</span>    // BloggingContext requires
    // using EFGetStarted.AspNetCore.NewDb.Models;
    // UseSqlite requires
    // using Microsoft.EntityFrameworkCore;
}

یک برنامه ی تولیدی بطور معمول رشته ی اتصال (coection string) را در یک فایل پیکربندی یا متغیر محیطی قرار خواهد داد.

جهت سادگی، این آموزش آن را در کد تعریف می کند.

برای اطلاعات بیشتر رشته های اتصال را ببینید.

ایجاد پایگاه داده

مراحل زیر از مهاجرت ها برای ایجاد پایگاه داده استفاده می کنند.

ویژوال بیسیک:

C#
Add-Migration InitialCreate
Update-Database

اگر خطایی مبنی بر The term ‘add-migration’ is not recognized as the name of a cmdlet دریافت کردید، ویژوال استودیو را بسته و مجددا باز کنید.
فرمان Add-Migration یک مهاجرت را برای ایجاد مجموعه جداول اولیه برای مدل چارچوب بندی می کند.

فرمان Update-Database پایگاه داده را ایجاد و مهاجرت جدید را بر روی آن اعمال می کند.

.NET Core CLI:

  • فرمان های زیر را اجرا کنید:

cl :


dotnet ef migrations add InitialCreate
dotnet ef database update

فرمان migrations یک مهاجرت را برای ایجاد مجموعه جداول اولیه برای مدل چارچوب بندی می کند.

فرمان database update پایگاه داده را ایجاد و مهاجرت جدید را بر روی آن اعمال می کند.

ایجاد یک کنترل کننده

یک کنترل کننده و نماها را برای موجودیت Blog چارچوب بندی کنید.

EF Core

EF Core

  • Model class را به Blog و Data context class را به BloggingContext تنظیم کنید.
  • Add را کلیک کنید.

.NET Core CLI:

  • فرمان های زیر را اجرا کنید:
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore
dotnet aspnet-codegenerator controller -name BlogsController -m Blog -dc BloggingContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries 

فرمان های tool install و add package ابزارهایی را نصب می کنند که می توانند کنترل کننده ها و نماها را چارچوب بندی کنند.

فرمان restore اطمینان حاصل می کند که تمامی پکیج های پروژه دانلود شده، و فرمان aspnet-codegenerator چارچوب بندی را انجام می دهد.

موتور چارچوب بندی فایل های زیر را ایجاد می کند:

  • یک کنترل کننده (Controllers/BlogController.cs)
  • نماهای Razor برای ایجاد (Create)، حذف (Delete)، جزئیات (Details)، تصحیح (Edit)، و فهرست بندی (Index) صفحات (Views/Movies/*.cshtml)

اجرای برنامه

EF Core

EF Core

  • به /Blogs بروید
  • از لینک Create New برای ایجاد چند نوشته ی بلاگ استفاده کنید.

EF Core

EF Core

  • لینک های Details، Edit، و Delete را امتحان کنید.

EF Core


برچسب: نویسنده: دانلودی تاريخ: پنجشنبه 8 آذر 1397 ساعت: 13:28

صفحه بندی