با سلام
کلیه مطالب برگرفته از مطالب ارائه شده از مهندس وحید نصیری می باشد البته با کمی دخل و تصرف!
من بخش به بخش سعی می کنم مطالب رو بنویسم تا دوستان استفاده کنند. هر سوالی در این مورد داشتید در این تاپیک بپرسید. تا جایی که اطلاع داشته باشم پاسخ خواهم داد.
یه خواهش: برای ابراز احساسات از گزینه تشکر استفاده نمائید خواهشا از پست ها جهت ابراز احساسات استفاده نکنید!
بدون مقدمه یه راست سر اصل مطلب:
برای ایجاد پروژه مراحل زیر را انجام می دهیم:
با فرض اینکه نام پروژه اصلی MVCProject هست
New=> Project=> ASP.Net MVC 4 Web Application
پس از OK اول کادری باز شده در آن سومین گزینه از چپ یعنی Internet appllication
A default ASP.NET MVC 4 project with an account controller that uses forms authentication.
را انتخاب کنید
View engin را هم Razor انتخاب شود.
پس از ایجاد پروژه اصلی Class Library های زیر را در ریشه پروژه اصلی ایجاد کنید
کلیک راست بروی ریشه اصلی پروژه و گزینه add سپس New Project
MVCProject.DataLayer
MVCProject.DomainClasses
MVCProject.ServiceLayer
MVCProject.Models
سپس با دستور
Install-Package EntityFramework
در Package Manager Console، EntityFramework را در پروژه های
Project
DataLayer
DomainClasses
ServiceLayer
Models
نصب کنید.
سپس در DataLayer توسط دستور زیر Migrations رو نصب کنید
Install-Package EntityFramework.Migrations -Version 0.9.0.0
در Web.config در بخش Connection نام دیتابیس خود را بنویسید. درواقع DefaultConnection رو به "your db name" تغییر نام دهید
سپس در DataLayer با نام دیتابیس تون یه کلاس اضافه کنید
از طرفی باید به References این پروژه DomainClasses رو اضافه کنید
Interface زیر رو قبل از کلاس (نام دیتابیستون) تایپ کنید
public interface IUnitOfWork
{
IDbSet<TEntity> Set<TEntity>() where TEntity : class;
DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;
int SaveChanges();
}
سپس کلاس اصلی رو به شکل زیر تغییر دهید:
public class "your db name" : DbContext, IUnitOfWork
{
public "your db name"()
: base("name=DefaultConnection")
{
}
public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
public DbSet<UserProfile> UserProfiles { set; get; }
and other table...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
تنظیم کلیدهای خارجی
تنظیم کلیدهای چندتایی
تنظیم حذف خودکار فرزند
base.OnModelCreating(modelBuilder);
}
}
به پروژه اصلی رفته و references های زیر رو اضافه کنید:
DataLayer
DomainClasses
ServiceLayer
Models
سپس Build Solution
سپس تو DataLayer دستور ریر رو اجرا کنید
Enable-Migrations -ContextTypeName "your db name"
پس از اجرای دستور و نصب Migrations داخل پوشه Migrations کلاس Configuration رو باز کرده و کدهای زیر را به آن اضافه کنید:
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true; // <-- THIS LINE
}
مدل های اصلی پروژه رو به DomainClasses اضافه کنید
سپس در صورت طی همه مراحل پس از اجرای دستور زیر باید دیتابیس شما ایجاد بشه
update-database
سپس تو Project دستورات زیر رو اجرا کنید تا structuremap نصب شود
Install-Package structuremap
Install-Package StructureMap.MVC4
ادامه دارد...