asp.net - 通过代码优先方法创建数据库的问题
问题描述
我正在使用 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>
我的数据库没有被创建。虽然它应该在运行程序后自动创建。
解决方案
您的数据库不会自动迁移,您需要对其进行编程或手动进行。更多信息: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();
}
推荐阅读
- java - Java snippet based AST-Manipulation before/during compilation
- elasticsearch - How to calcuate starttime & endtime using painless script
- python - 如何使用 Python 拥有分类正则表达式组
- javascript - CloudFlare 缓存页面 - 国家检测
- node.js - Nodejs - 调用 AWS SNS 发布,但未发送消息
- spring-boot - Spring Data 默认使用 join fetch
- javascript - 使用javascript为隐藏的输入数组元素赋值
- python - 是否可以将绘图输出(作为 mpf 的 mplfinance)发送到电子邮件地址?
- java - 如何处理数字格式异常?
- yaml - 是否可以独立运行 2 个 circleCI 工作流——每次提交一个,每天一个?