天天看點

mvc5+ef6+Bootstrap 項目心得--創立之初

1.mvc5+ef6+Bootstrap 項目心得--創立之初

2.mvc5+ef6+Bootstrap 項目心得--身份驗證和權限管理

3.mvc5+ef6+Bootstrap 項目心得--WebGrid

   在使用ef6的時候,如果木有系統的學習,很多人都是一臉蒙的吧。經過N天的摸索和網上查找資料學習,總結了下。這裡簡單說一下ef+bootstrap的安裝和使用。

  打開vs2015建立web項目,選擇Empty,而不是MVC。然後下面有三個勾選項:Web Froms,MVC,Web Application。把MVC的勾選項。然後會看到項目裡面隻有ControllerS,Models,Views 三個空的檔案夾。

  安裝ef6的步驟:

  1.   工具——NuGet包管理器——程式包管理控制平台。
    mvc5+ef6+Bootstrap 項目心得--創立之初
  2. 輸入“Install-Package EntityFramework” ——回車,等待安裝好
  3. 輸入“Install-Package bootstrap”

需要用到的2個子產品安裝好了。接下來就是使用code first裡面的Migrations。

1. 在Models下建立一個Class作為資料庫的Table用。

2.繼承DbContext。

public class LifeMContext : DbContext
    {
        public LifeMContext() : base("LifeMContext")
        {

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

        public DbSet<User> UserList { get; set; }
        public DbSet<AddressInfo> AddressInfoList { get; set; }
        public DbSet<EnumDictionary> EnumDictionaryList { get; set; }
    }      

3.記得要在web.config裡面加上資料庫連結

<connectionStrings>
    <add name="LifeMContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\LifeM.mdf;Initial Catalog=LifeM;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>      

4.在程式包管理控制平台輸入“enable-migrations -contexttypename LifeManager.Models.LifeMContext”。“enable-migrations -contexttypename” 是指令建立migrations檔案夾和Configuration.cs用的。注意是“enable-migrations -contexttypename” 空格不能少。

internal sealed class Configuration : DbMigrationsConfiguration<LifeManager.Models.LifeMContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            ContextKey = "LifeManager.Models.LifeMContext";
        }

        protected override void Seed(LifeManager.Models.LifeMContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
            //  to avoid creating duplicate seed data. E.g.
            //
            //    context.People.AddOrUpdate(
            //      p => p.FullName,
            //      new Person { FullName = "Andrew Peters" },
            //      new Person { FullName = "Brice Lambson" },
            //      new Person { FullName = "Rowan Miller" }
            //    );
            //以下插入資料會出現中文亂碼,VS2015需更新update2
            //var guid = Guid.NewGuid().ToString();
            //context.EnumDictionaryList.AddOrUpdate(t=>t.Value, 
            //new EnumDictionary() { GuidKey = guid, Value = "系統管理", Url = "#", ParentGuid = "0", OrderASC = 1, Level = 1 },
            //new EnumDictionary() { GuidKey = Guid.NewGuid().ToString(), Value = "使用者管理", Url = "#", ParentGuid = guid, OrderASC = 1, Level = 2 },
            //new EnumDictionary() { GuidKey = Guid.NewGuid().ToString(), Value = "機構管理", Url = "#", ParentGuid = guid, OrderASC = 2, Level = 3 },
            //new EnumDictionary() { GuidKey = Guid.NewGuid().ToString(), Value = "角色管理", Url = "#", ParentGuid = guid, OrderASC = 3, Level = 4 },
            //new EnumDictionary() { GuidKey = Guid.NewGuid().ToString(), Value = "區域管理", Url = "#", ParentGuid = guid, OrderASC = 4, Level = 5 },
            //new EnumDictionary() { GuidKey = Guid.NewGuid().ToString(), Value = "系統安全", Url = "#", ParentGuid = "0", OrderASC = 1, Level = 5 });
            //context.SaveChanges();
        }
    }      

5.在程式包管理控制平台輸入“add-migration initial”,等待在輸入“update database”。這個時候在項目中有個App_Data檔案夾,裡面就是資料庫啦。之後在Models下建立class或者修改class後,使用“add-migration initial” “update database”2條指令即可更新資料庫。注意資料庫裡面有個“__MigrationHistory”表 一定不能删,一定不能删,一定不能删。後果自己試試就知道了- -!

如果覺得敲指令麻煩可以使用界面管理NuGet。右鍵項目——管理NuGet程式包。直接輸入“EntityFramework”,“Bootstrap”,下載下傳就好了。需要加NPOI,JSON,Jquery UI等等都可以在這裡搜尋,安裝。

如果覺得文章不錯,請給個推薦(◕ˇ◞◟ˇ◕),謝謝。