我使用 Asp.Net MVC 4 的新单页应用程序创建了一个项目。我运行了 Web 应用程序并创建了默认的 Sql Server localDB 数据库,以及以下类的表。
public class TodoItem
{
public int TodoItemId { get; set; }
[Required]
public string Title { get; set; }
public bool IsDone { get; set; }
// public string Test { get; set; }
[ForeignKey("TodoList")]
public int TodoListId { get; set; }
public virtual TodoList TodoList { get; set; }
}
}
然后
- 我发现我需要
varchar(max)
为 column生成的数据库Title
。我将其修改为varchar(500)
. (alter table todoitems alter column Title varchar(500) not null
) Web 应用程序可以毫无问题地运行。 - 然后我在类中添加一个新属性(取消注释 Test 属性)。运行 Web 应用程序时出现以下异常。
自数据库创建以来,支持“TodoItemContext”上下文的模型已更改。考虑使用 Code First 迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=238269 )。
在
[Authorize]
public class TodoListController : ApiController
{
private TodoItemContext db = new TodoItemContext();
// GET api/TodoList
public IEnumerable<TodoListDto> GetTodoLists()
{
return db.TodoLists.Include("Todos")
.Where(u => u.UserId == User.Identity.Name)
.OrderByDescending(u => u.TodoListId)
.AsEnumerable()
.Select(todoList => new TodoListDto(todoList));
}
- 我试图修改数据库表(
alter table todoitems add Test varchar(200)
),但仍然引发异常。
是否可以更改模型类并修改(通过 VisualStudio 或手动)表而不是重新创建表?(我想在数据库表上保留我的手动更改。)