Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用代码优先迁移来更新数据库?_C#_Asp.net_Asp.net Web Api_Asp.net Web Api2 - Fatal编程技术网

C# 如何使用代码优先迁移来更新数据库?

C# 如何使用代码优先迁移来更新数据库?,c#,asp.net,asp.net-web-api,asp.net-web-api2,C#,Asp.net,Asp.net Web Api,Asp.net Web Api2,我制作了一个c#.NETWebAPI,它工作正常,但当我更改模型时,它停止工作,并给出以下错误消息 支持“ApiDbContext”上下文的模型自 数据库已创建。考虑使用代码第一迁移来更新 数据库 这是我的代码: 模型(未更改): 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 名称空间测试模型 { 公共类用户 { 公共int Id{get;set;} 公共字符串名称{get;set;} //公共日期时间开始时间{

我制作了一个c#.NETWebAPI,它工作正常,但当我更改模型时,它停止工作,并给出以下错误消息

支持“ApiDbContext”上下文的模型自 数据库已创建。考虑使用代码第一迁移来更新 数据库

这是我的代码:

模型(未更改):

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间测试模型
{
公共类用户
{
公共int Id{get;set;}
公共字符串名称{get;set;}
//公共日期时间开始时间{get;set;}
//公共日期时间结束时间{get;set;}
//公共整数{get;set;}
//公共字符串地址{get;set;}
}
}
模型(已更改):

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间测试模型
{
公共类用户
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共日期时间开始时间{get;set;}
//公共日期时间结束时间{get;set;}
//公共整数{get;set;}
//公共字符串地址{get;set;}
}
}
控制器(在updateUser更改):

使用系统;
使用System.Collections.Generic;
使用System.Linq;
Net系统;
使用System.Net.Http;
使用System.Web.Http;
使用Test.DBA;
使用测试模型;
名称空间测试控制器
{
公共类UserApicController:ApicController
{
ApiDbContext=null;
公共用户apicontroller()
{
dbContext=新的ApiDbContext();
}
[HttpPost]
公共IHttpActionResult插入器(用户)
{
dbContext.Users.Add(用户);
dbContext.saveChangesSync();
返回Ok(用户名);
}
public IEnumerable GetAllUser()
{
var list=dbContext.Users.ToList();
退货清单;
}
[HttpPost]
公共IHttpActionResult DeleteUser(用户用户)
{
dbContext.Users.Remove(用户);
dbContext.SaveChanges();
返回Ok(用户名);
}
[HttpGet]
公共IHttpActionResult视图用户(int id)
{
var student=dbContext.Users.Find(id);
返回Ok(学生);
}
[HttpPost]
公共IHttpActionResult更新程序(用户)
{
User std=dbContext.Users.Find(User.Id);
标准名称=用户名;
std.startTime=user.startTime;
//std.endTime=user.endTime;
//标准年龄=用户年龄;
//标准地址=用户地址;
dbContext.Entry(std.State=System.Data.Entity.EntityState.Modified;
dbContext.saveChangesSync();
返回Ok();
}
}
}
DBContext:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Data.Entity;
使用测试模型;
名称空间Test.DBA
{
公共类ApiDbContext:DbContext
{
公共ApiDbContext():基(“连接”)
{
}
公共数据库集用户{get;set;}
}
}
连接字符串:


在package manager控制台中键入
启用迁移
,在键入
添加迁移
之后,设置名称,然后键入
更新数据库

  • 启用迁移:通过创建配置类在项目中启用迁移
  • 添加迁移:使用Up()和Down()方法根据指定的名称创建新的迁移类
  • 更新数据库:执行添加迁移命令创建的最后一个迁移文件,并将更改应用于数据库架构
  • 更多详情: