برنامه نویس وب و موبایل


دوشنبه 16 تیر
MVC

لایه بندی در نرم افزار

جمعه, 20 دی 1398

نرم افزار ویژوال استدیو را باز کرده و در قسمت new Project قالب ‌Asp Net Web Application را انتخاب می کنیم.

در قسمت انتخاب نام برای Solution  نام LatinMedia را در نظر گرفته ام و در قسمت نام پروژه نام LatinMedia.Web را در انتخاب کرده ام.

 
 

در مرحله بعد نوع پروژه را از نوع Empty و از قسمت پایین تیک mvc را می زنیم.

 

 

 

بر روی نام solotion کلیک راست زده و در قسمت Add یک پروژه جدید می سازیم.

 

 

در پروژه DataLayer دو پوشه به نام Context و Models می سازیم.

در پوشه Models سه کلاس می سازیم  از قبیل User  , Role , UserRole می سازیم.

کلاس User برای ذخیره کاربر , کلاس Role برای ذخیره نقش و کلاس UserRole برای این می باشد که به کاربر ممکن است چندین نقش بدهیم .یعنی در کل سه جدول.

اگر قرار بود که هر کاربر یک نقش بیشتر داشته باشد در همان جدول User اتصال به Role را انجام می دادیم.ولی ما می خواهیم برای هر کاربر چندین نقش در نظر بگیریم که برای این کار می بایست بین جدول User و Role یک جدول واسط به نام  UserRole می سازیم.

شرح کد کلاس ها به صورت زیر است.




public class User
    }
        [Key]
        public int ID { get; set; }
        public string Name { get; set; }
        public string Family { get; set; }

        public virtual List<UserRole> UserRoles { get; set; }

    {

 

public class Role
    }
        [Key]
        public int ID { get; set; }
        public string Name { get; set; }

        public virtual List<UserRole> UserRoles { get; set; }
    {

 

public class UserRole
    }
        [Key]
        public int ID { get; set; }
        public int UserID { get; set; }
        public int RoleID { get; set; }

        public User User { get; set; }
        public Role Role { get; set; }
    {

 

در پوشه Context کلاسی به شرح زیر می سازیم.


 

public class SchoolContext : DbContext
    }
        public SchoolContext() : base("SchoolContext")
        }

        {
        public DbSet<User> Users { get; set; }
        public DbSet<Role> Roles { get; set; }
        public DbSet<UserRole> UserRoles { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        {
    {

با ساختن این کلاس Context به خطا برخورد می کنیم .می بایست با استفاده از کد زیر پکیج EntityFramework را برای دو پروژه نصب کنیم .یعنی دوباردر قسمت packageManagerConsole.

Install-Package EntityFramework

خب خسته نباشید . داریم به آخرای کار نزدیک می شویم.

در پروژه Web در فایل Web.Config در قسمت  entityFrameWork قطعه کد زیر را اضافه می کنیم



<contexts>
      <context type="LatinMedia.DataLayer.Context.SchoolContext, LatinMedia"/>
    </contexts>

 

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


<connectionStrings>
    <add name="SchoolContext" connectionString="Data Source=.;Initial Catalog=SchoolDB;Integrated Security=true;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

حالا پروژه رو Build کرده و در صورت موفقیت امیز بودن PackageManagerConsole را باز می کنیم.

این سه خط را به ترتیب با یک Enter می زنیم.ودیتا بیس با نامی که در ConectionString انتخاب کرده ایم ساخته می شود.

Enable-Migrations

Add-Migration -Name "Init"

Update-Database -Verbose

موفق باشید



نظرات

Drag to order
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
نظر تایید شده ای برای این مطلب وجود ندارد .