EF数据库优先方法如何将新的非空列添加到生产表并在代码级别进行管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF数据库优先方法如何将新的非空列添加到生产表并在代码级别进行管理相关的知识,希望对你有一定的参考价值。

我的ASP.NET MVC 4应用程序使用Entity Framework 6和数据库优先方法。它已经在生产环境中,现在想要在Deposit表中添加新列,并且此列不为null。生产表已经有很多数据。

我应该如何管理这些变化,在代码优先的方法中,任何人都可以帮助我吗?我该怎么办,我是Entity Framework的新手。

答案

如果您将继续使用数据库优先方法,您可以执行以下操作:

1)运行脚本来迁移DB:

ALTER TABLE Deposit ADD <column_name> INT NULL
GO
UPDATE Deposit SET <a valid not null values for your column>
GO
ALTER TABLE Deposit  ALTER COLUMN <column_name> INT NOT NULL
GO

2)由于您使用的是db-first方法,因此需要更新已附加到db的edmx模型(.edmx文件)。如果我没记错,您可以在解决方案资源管理器中的上下文菜单中进行操作

以上是关于EF数据库优先方法如何将新的非空列添加到生产表并在代码级别进行管理的主要内容,如果未能解决你的问题,请参考以下文章

oracle如何向空表中添加一个类型为clob的非空列

如何使用 LINQ 将空值发送到 ASP.NET 中的非空列

从数据库 B 将新的非重复记录添加到数据库 A 的最快方法(两者都很大)

在 EF 6 和 MVC 5 中使用 Code First 方法将新表添加到现有数据库

如何使用 MYSQL 中的连接从多个表中获取多个列并在非空列上显示数据以及在空列上显示 null 或零

是时候通过方法向新列添加默认值了