我正在使用VS2017版本15.7.3
我很好奇为什么新的解决方案会创建一个迁移列为2.1.0版的数据库,但是如果通过PM控制台添加了同一个数据库的标识表,则迁移将列为rtm。
证明我的意思的步骤。
我使用ASP.NET Core Web Application模板构建了一个新的解决方案
然后生成的代码显示数据迁移将具有ProductVersion 2.1.0
namespace WebApplication14.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.0")
//etc
我运行应用程序,注册用户并单击“迁移已应用”以创建数据库。
下一步
在软件包管理器控制台中输入
添加迁移一个
现在ApplicationDbContextModelSnapshot引用rtm ProductVersion
namespace WebApplication14.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
如果我再运行
更新的数据库
使用__EMMigrationsHistory
中列出的rtm产品版本在数据库中创建表我想知道这种差异是否符合设计,如果是这样,为什么会这样设计。