c# - 在实体框架中更新数据库
问题描述
我怎样才能使用SetInitializer
只更新数据库?我不想删除并重新创建它,因为我只添加了一个列:
Database.SetInitializer<myDbContext>( /* Here */ );
解决方案
基本上您需要使用DropCreateDatabaseIfModelChanges
,因为您的模型类(实体类)已更改。
如果以上不满足您的要求,或者您想要使用上述初始化程序初始化数据库,您还可以创建自己的自定义初始化程序。
那应该是这样的:
public class YourCustomInitializer : DropCreateDatabaseIfModelChanges<YourDBContext>
{
protected override void Seed(YourDBContext context)
{
// sample data to be written or updated to the DB
}
}
值得一提的是,您可以简单地将新列添加到实体中,然后使用add-migration 和 update-database命令。您需要在 PackageManagerConsole 中运行这些命令。
推荐阅读
- python - Python: Add error lines/shaded area for linear fit?
- reactjs - 如何在 redux 中更新状态
- python - 如何为 hvplot 中的子图指定单独的 y 限制?
- loops - 在 JuMP 约束中循环变量子集
- sql - regrouping all results in a select with a while
- python-3.x - 我想在 Tkinter 文本小部件中创建一个 png 格式的图像
- python - 问题从似乎发生变化的网站上抓取数据
- sql-server - Sql-Agent 未在 Azure 容器中的 Ubuntu SQL Server docker 容器上启动
- flutter - How do I transfer data from one function to another function in Flutter? Specifically this case
- c# - 检查二维数组c#中的某些元素是否相等