首页 > 解决方案 > 通过代码优先方法创建数据库的问题

问题描述

我正在使用 Visual Studio 2019 和 Microsoft SQL Server Management Studio 2018。我使用的是代码优先方法。我创建了Tri类:

namespace WebApplication3Connection
{
    public class Tri
    {
        [Key]
        public string GradeName { get; set; }
        public string Section { get; set; }
    }
}

TriContext类:

public class TriContext:DbContext
{
    public DbSet<Tri> Tris { get; set; }
}

现在在web.config文件中添加连接字符串后

<connectionStrings>
    <add name="TriContext" 
         connectionString="server=DESKTOP-3V101I4\SQLEXPRESS;database=Tri;Integrated Security=true; Pooling=false; timeout = 2000;"  
         providerName="System.Data.SqlClient" />
</connectionStrings>

我的数据库没有被创建。虽然它应该在运行程序后自动创建。

标签: asp.netlinqentity

解决方案


您的数据库不会自动迁移,您需要对其进行编程或手动进行。更多信息:https ://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/

手动

在 Visual Studio 中打开包管理器控制台并执行以下命令:

add-migration MyMigrationName
update-database

以编程方式

您仍然需要在每次更改后手动创建迁移。

add-migration MyMigrationName

但是迁移可以通过编程方式完成。如果您有多个运行多个数据库的程序实例,这很有趣。或者例如具有不同的生产和开发数据库。

//startup.cs:    
public void Configure(TriContext triContext) {
  triContext.Database.Migrate();
}

推荐阅读