Localdb数据库添加新字段 迁移过程
您将使用实体框架代码第一次迁移迁移到模型类的一些变化,所以该更改应用于数据库
1、在App-data文件夹中的Movies.mdf文件上点击鼠标右键并选择删除来删除电影数据库
2、从工具菜单上,单击库程序包管理器,然后程序包管理器控制台.
在程序包管理器控制台窗口中 PM>
提示输入
-ContextTypeName MvcMovie.Models.MovieDBContext 然后点击回车。 MvcMovie是项目的名字
3、在新的迁移文件夹rationsMig中创建一个Configuration.cs文件。
4、打开Configuration.cs文件。在Configuration.cs文件的Seed方
法替换为下面的代码:
protected override void Seed(MvcMovie.Models.MovieDBContext context)
{
context.Movies.AddOrUpdate( i => i.Title,
new Movie
{
Title = "When Harry Met Sally", //表中的字段
ReleaseDate = DateTime.Parse("1989-1-11"),
Genre = "Romantic Comedy",
Price = 7.99M
},
new Movie
{
Title = "Ghostbusters ",
ReleaseDate = DateTime.Parse("1984-3-13"),
Genre = "Comedy",
Price = 8.99M
},
new Movie
{
Title = "Ghostbusters 2",
ReleaseDate = DateTime.Parse("1986-2-23"),
Genre = "Comedy",
Price = 9.99M
},
new Movie
{
Title = "Rio Bravo",
ReleaseDate = DateTime.Parse("1959-4-15"),
Genre = "Western",
Price = 3.99M
}
);
}
5、创建一个DbMigration
类用于初始迁移。在程序包管理器控制台窗口中,输入命令add-migration Initial
创建初始迁移。代码第一次迁移会在迁移文件夹中创建另一个类文件201508270142453_Rating.cs。
6、通过将新的Rating
属性添加到现有的Movie类
。打开Models\Movie.cs文件并添加像这样的Rating
属性:
7、你还需要更新视图模板来显示、 创建和编辑浏览器视图中的新Rating
属性。
此时运行程序会报错,因为在应用程序中更新后的Movie
模式类现在比Movie
表的现有数据库的架构不同。再执行一下操作
8、打开 Migrations\Configuration.cs 文件,并将评级字段添加到影片的每个对像
9、生成解决方案,然后打开程序包管理器控制台窗口并输入以下命令:
add-migration Rating。当此命令完成,Visual Studio 会打开类文件中定义新的
DbMIgration
派生类,并在Up
的方法,你可以看到代码,创建新列
10、生成解决方案,然后在程序包管理器控制台窗口中输入update-database
命令。重新运行程序,添加新字段成功。