一、使用Code First创建数据库
1、创建模型:在Model文件夹下创建UserInfo类和ImageSwiper类
public class UserInfo { [Key] public string openid { get; set; } public string session_key { get; set; } public string nickName { get; set; } public string avatarUrl { get; set; } public int gender { get; set; } public string province { get; set; } public string city { get; set; } public string country { get; set; } }
public class ImageSwiper { [Key] public int id { get; set; } [MaxLength(500)] public string src { get; set; } }
2、添加上下文
在Repository文件夹中添加DemoContext类,继承DbContext,添加using System.Data.Entity的引用
将实体类添加到Dbset
public class DemoContext : DbContext { /// <summary> /// 使用“codefirst”连接字符串。根据实际情况修改连接字符串,更多写在Web.config的连接字符串中 /// </summary> public DemoContext() : base("data source=127.0.0.1;initial catalog=Demo;user id=sa;password=1234") { } /// <summary> /// code first默认生成的表名会加上s,这段代码生成的数据表名不带s /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } /// <summary> /// 实体类型添加到 DbSet /// </summary> public virtual DbSet<UserInfo> UserInfo { get; set; } public virtual DbSet<ImageSwiper> ImageSwiper { get; set; } }
如果使用连接字符串写在Web.config中,注意name一致
public DemoContext() : base("name=conStr") { } <!-- Webconfig中的<configuration>节点下增加二级节点<connectionStrings>: -->
<connectionStrings> <add name="conStr" connectionString="data source=127.0.0.1;initial catalog=Demo;user id=sa;password=1234" providerName="System.Data.SqlClient"/> </connectionStrings>
3、在Home控制器中,实例化上下文,运行,自动生成Demo数据库,并生成UserInfo表和ImageSwiper表,
public class HomeController : Controller { DemoContext db = new DemoContext(); //实例化上下文 public ActionResult Index() {
db.UserInfo.ToList(); //
db.ImageSwiper.ToList(); //
return View();
}
}
4、生成数据库、查看数据库
二、更新数据库,数据库迁移。
1、工具-》NuGet包管理器=》程序包管理控制台
2、控制台中执行下列命令:
1)、Enable-Migrations -Force
生成一个文件夹Migrations文件夹,里面存放数据库迁移产生的文件
2)、Add-Migration Initial
添加数据模型到数据库,只有写进数据库上下文中的表才会执行创建操作,这一步只是创建了执行的语句,并没有执行。
3)、Update-Database
执行最新数据库迁移文件,即上条语句生成的执行语句。
3、数据迁移注意事项
1)、只有首次执行数据迁移需要执行Enable-Migrations命令,之后再执行就不需要了。
2)、如果出现函数声明中缺少函数体、或“无法将xxx项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”,等警告,注意查看是否是Windows PowerShell版本过低。参阅:如何升级PowerShell,网址:https://blog.csdn.net/u011159607/article/details/90258395