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)
列用に生成されたデータベースが必要であることがわかりましたTitle
。に変更しましたvarchar(500)
。(alter table todoitems alter column Title varchar(500) not null
)Webアプリは問題なく実行できます。- 次に、クラスに新しいプロパティを追加します(Testプロパティのコメントを解除します)。Webアプリを実行すると、次の例外が発生しました。
データベースが作成されてから、「TodoItemContext」コンテキストをサポートするモデルが変更されました。Code First Migrationsを使用してデータベースを更新することを検討してください(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または手動で)変更することは可能ですか?(手動で変更をデータベーステーブルに保持したい。)