
Code First در MVC – ایجاد دیتابیس
در قسمت اول آموزش Code First در MVC – ایجاد دیتابیس، قصد داریم تا دیتابیسی را به روش Code First ایجاد کنیم. در این روش ابتدا برنامه را مینویسیم یعنی توسط کلاس مدلی که ایجاد میکنیم دیتابیس ایجاد میشود. این آموزش را بهتر است با یک مثال ارائه دهیم فرض کنید قصد داریم دیتابیسی به نام MyDB ایجاد کنیم و جدولی به نام User همراه با فیلد های زیر به آن اضافه کنیم.
- نام دیتابیس : MyDB
- نام جدول : Tab_User
- فیلد ها : UserId , Name , Family , Gender , MobileNumber , Email , Password , ImageName , RegisterDate , IsActive
افزودن Entity Framework
- گام اول : از طریق manage nuget packages اقدام به افزودن Entity Framework به پروژه خود کنید. Entity Framework ورژن های محتلفی دارد حتما Entity Framework حالی را نصب کنید و به اشتباه نسخه های Core و … را نصب نکنید.
ایجاد Context
- گام دوم : در پوشه مدل های خود باید کلاسی را برای Context ها ایجاد کنیم نام آن را MyDBContext قرار میدهیم و آن را از کلاس DbContext اکستند میکنیم. توجه داشته باشید که بعدا، یعنی بعد از افزودن مدل مربوط به جدول های خود باید به این کلاس برگردیم و جداول خود را در اینجا معرفی کنیم.
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
namespace WebApplication1.Models
{
public class MyDBContext : DbContext
{
}
}ایجاد Model
- گام سوم : در پوشه مدل کلاس جدیدی اضافه میکنیم با نام User این کلاس قرار است مدل جدول Tab_User ما باشد.
الف – توسط دیتا انوتیشن [Table(“Table Name”)] نام جدول خود را مشخص میکنیم
ب – توسط دیتا انوتیشن [Required] فیلذ های اجباری را مشخص میکنیم، کار همان تیک Allow Null را در Sql میکند.
پ – توسط دیتا انوتیشن [MaxLength(Char number)] تعداد کاراکتر ها را مشخص میکنیم.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace WebApplication1.Models
{
[Table("Tab_User")]
public class User
{
[Key]
public int UserID { get; set; }
[Required]
[MaxLength(60)]
public String Name { get; set; }
[Required]
[MaxLength(60)]
public String Family { get; set; }
public bool Gender { get; set; }
[Required]
[MaxLength(13)]
public String MobileNumber { get; set; }
[Required]
[MaxLength(60)]
public String Email { get; set; }
[Required]
[MaxLength(100)]
public String Password { get; set; }
[Required]
[MaxLength(150)]
public String ImageName { get; set; }
[Required]
public DateTime RegisterDate { get; set; }
[Required]
public bool IsActive { get; set; }
}
}کانفیگ Context
- گام چهارم : به گام دوم برمیگردیم یعنی جایی که کلاس MyDBContext را ایجاد گردیم در این کلاس باید جدول یا جدول های خود را معرفی کنیم. برای همین پراپرتی از جنس جنریک DbSet برای کلاس مدل که برای جدول خود ایجاد کردیم میسازیم. و خود Visual پیشنهاد داد نام آن را Users بزاریم، حتما نام ها را با حروف بزرگ بنویسید.
این کلاس دیتابیس است و نام آن MyDBContext میباشد که در سراسر پروژه میتوانیم از آن استفاده کنیم.
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
namespace WebApplication1.Models
{
public class MyDBContext : DbContext
{
public DbSet<User> Users { get; set; }
}
}افزودن Connection String
- گام پنجم : حال باید در فایل Web.config خود یک Connection String ایجاد کنیم. تا مشخص کنیم مدلی که برای جدول خود ایجاد کردیم در کدام دیتابیس و کدام سرور ذخیره شود.
ابتدا در قسمت Name نام کلاس Context خود را وارد کنید. در این مثال نام کلاس Context ما MyDBContext میباشد.
و در قسمت Data Source نام سرور خود را وارد کنید. در این مثال نام سرور ما . میباشد.
در قسمت Initial Catalog نام دیتابیس را وارد کنید. در این مثال نام دیتابیس ما MyDB میباشد.
بهترین مکان برای درج Connection String در پایین ترین قسمت و قبل از تگ configuration میباشد.
نمونه کد Connection String برای احراز هویت توسط Windos
<connectionStrings>
<add name="Context Name" connectionString="Data Source= Server Name;Initial Catalog= Database Name;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>نمونه کد Connection String برای احراز هویت توسط Sql
<connectionStrings>
<add name="Context Name" connectionString="Data Source= Server Name;Integrated Security=true;Initial Catalog= Database Name;uid=YourUserName;Password=yourpassword" providerName="System.Data.SqlClient" />
</connectionStrings>اجرای Migration
- گام ششم : برای فعال سازی Migration خود همانند تصویر وارد package manager console شوید و دستورات زیر را به ترتیب وارد کنید.
۱ – دستور شماره یک
enable-migrations۲ – دستور شماره دو : در زمان اجرا از شما یک نام میخواهد، یک نام معنادار به آن بدهید مثلا CreateDB و یا CreateTableX ویا UpdateTableX و ….
add-migration۳ – دستور شماره سه
update-databaseکار تمام است به نرم افزار SqlServer بروید و دیتابیس خود را مشاهده کنید.

































ممنون بابت آموزشتون من این بخش رو از آموزش های mosh udemy دیده بودم اینجا با جزییات توضیح دادید. ممنون
سلامت باشید
دوره های جدید Asp.net Core ما با معماری MVC منتشر شده : https://tehranit.net/asp-core/
دوره جدید EF Core برای کار با دیتابیس : https://tehranit.net/entity-framework-core/
از این دوره ها هم دیدن فرمایید