2016-11-19 146 views
0

我做了一個c#.NET的WebAPI,它改變了它停止工作的模型,它給了我下面的錯誤信息。如何使用代碼優先遷移來更新數據庫?

自從創建數據庫以來,支持「ApiDbContext」上下文的模型已經發生了變化。考慮使用Code First Migrations來更新數據庫。

模型(不變):

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Test.Models 
{ 
    public class User 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     //public DateTime startTime { get; set; } 
     //public DateTime endTime { get; set; } 
     //public int Age { get; set; } 
     //public string Adress { get; set; } 
    } 
} 

模型(改變):

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 

    namespace Test.Models 
    { 
     public class User 
     { 
      public int Id { get; set; } 
      public string Name { get; set; } 
      public DateTime startTime { get; set; } 
      //public DateTime endTime { get; set; } 
      //public int Age { get; set; } 
      //public string Adress { get; set; } 
     } 
    } 
The Controller(changed at updateUser): 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using Test.DBA; 
using Test.Models; 

namespace Test.Controllers 
{ 
    public class UserAPIController : ApiController 
    { 
     ApiDbContext dbContext = null; 
     public UserAPIController() 
     { 
      dbContext = new ApiDbContext(); 
     } 
     [HttpPost] 
     public IHttpActionResult InsertUser(User user) 
     { 
      dbContext.Users.Add(user); 
      dbContext.SaveChangesAsync(); 

      return Ok(user.Name); 
     } 

     public IEnumerable<User> GetAllUser() 
     { 
      var list = dbContext.Users.ToList(); 
      return list; 
     } 

     [HttpPost] 
     public IHttpActionResult DeleteUser(User user) 
     { 
      dbContext.Users.Remove(user); 
      dbContext.SaveChanges(); 

      return Ok(user.Name); 
     } 

     [HttpGet] 
     public IHttpActionResult ViewUser(int id) 
     { 
      var student = dbContext.Users.Find(id); 
      return Ok(student); 
     } 

     [HttpPost] 
     public IHttpActionResult UpdateUser(User user) 
     { 
      User std = dbContext.Users.Find(user.Id); 

      std.Name = user.Name; 
      std.startTime = user.startTime; 
      //std.endTime = user.endTime; 
      //std.Age = user.Age; 
      //std.Adress = user.Adress; 

      dbContext.Entry(std).State = System.Data.Entity.EntityState.Modified; 
      dbContext.SaveChangesAsync(); 

      return Ok(); 
     } 
    } 
} 

的DbContext:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 
using Test.Models; 

namespace Test.DBA 
{ 
    public class ApiDbContext :DbContext 
    { 
     public ApiDbContext() : base("Connection") 
     { 

     } 
     public DbSet<User> Users { get; set; } 
    } 
} 

連接字符串:

<connectionStrings> 
    <add name ="Connection" connectionString="Data Source=.\SQLExpress;Initial Catalog=k;Integrated Security=True" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

回答

相關問題