پیاده سازی کلاس Seed در Asp.Net Core
0 0

پیاده سازی کلاس Seed در Asp.Net Core


پیاده سازی کلاس Seed در Asp.Net Core

در این پست قصد داریم نحوه ثبت اطلاعات اولیه هنگام ساخت دیتابیس در Asp.Net Core به پردازیم. شاید خیلی مواقع هنگام طراحی یک سایت نیاز داشته باشید یک سری اطلاعات مانند مدیر ارشد سایت و... را به صورت خودکار فقط یکبار در دیتابیس ثبت کنید.

کلاس Seed برای ثبت اطلاعات اولیه داخل دیتابیس مورد استفاده قرار می گیرد و در ادامه نحوه ایجاد کلاس Seed را مورد بررسی قرار می دهیم.

ابتدا یک کلاس به نام SeedData در پوشه Models ایجاد کنید و آن را به صورت زیر تغییر دهید

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcAspCore.Data;

namespace MvcAspCore.Models
{
    /// <summary>
    /// این کلاس رو به صورت استایک تعریف کردیم که فقط یک بار در پروژه از آن استفاده کنیم
    /// کار این کلاس ثبت اطلاعات اولیه در دیتابیس
    /// </summary>
    public static class SeedData
    {
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new ApplicationDbContext
                (serviceProvider.GetRequiredService<DbContextOptions<ApplicationDbContext>>()))
            {
                // در این قسمت می توان هر شرطی را بررسی کرد
                if (context.Users.Any())
                {
                    return;
                }

                // اطلاعات جدید

                // کاربری که به این صورت اضافه شود اطلاعات کاربر به صورت ناقص در دیتابیس ثبت می شود
                context.Users.AddRange(
                    new ApplicationUser { Email = "info@iranganj.com",UserName = "",PasswordHash = "P@ssw0rd"}
                    //,new ApplicationUser { Email = "info@karkoo.ir",UserName = "",PasswordHash = "P@ssw0rd"}
                    );

                context.Posts.AddRange(
                    new Post { PostCategoryId = 1, Name = "My Post Name", Description = "My Post Description" }
                    );

                context.SaveChanges();

                // حالا باید این کانفیگور را به فایل استارتاپ و متد کانفیگور و بعد از تمام کدها اضافه کنیم
                //SeedData.Initialize(app.ApplicationServices);
            }
        }
    }
}

در این کلاس بررسی کردیم در صورت عدم وجود یک کاربر در دیتابیس اطلاعات فوق در دیتابیس ثبت شود و شما می توانید این شرط را به هر صورتی که می خواهید تغییر و یا حتی از دستورات شرطی تودرتو استفاده کنید و اطلاعات اولیه خود را داخل دیتابیس ذخیره کنید.

و در نهایت باید کد زیر را به کلاس Startup و متد Configure و بعد از سایر کدها یعنی این خط کد باید آخرین دستور در این متد باشد اضافه کنید.

SeedData.Initialize(app.ApplicationServices);

 

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net Core
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۱۷ اسفند ۱۳۹۵
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران مهمان
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha