使用 EF CodeF 和 mvc nugget Scaffold 发布后向 DB 添加列

Posted

技术标签:

【中文标题】使用 EF CodeF 和 mvc nugget Scaffold 发布后向 DB 添加列【英文标题】:Adding columns to DB after publishing using EF CodeF and mvc nugget Scaffold 【发布时间】:2011-10-09 13:43:18 【问题描述】:

我首先使用 mvc 3 和 Ef 代码创建了一个网站,现在在发布该网站和它的数据库之后,我发现我需要在我的一个数据库表中添加一个新列, (数据库中已经有很多数据) 我应该将列直接添加到数据库中还是应该添加到类中? (只是一个带有 get 和 set 的简单字符串) 以及如何在不丢失数据库中数据的情况下做到这一点? 谢谢

【问题讨论】:

【参考方案1】:

将列添加到类中就足够了。您可以找到here 的证据。

以下是迁移可以自动处理的更改的完整列表:

添加属性或类

对于任何现有数据行,可为 Nullable 列分配 null 值 将为任何现有数据行的给定数据类型分配 CLR 默认值

重命名属性或类

有关此处所需的其他步骤,请参阅“重命名属性和类”

重命名基础列/表而不重命名属性/类 (使用数据注释或 fluent API)

迁移可以自动检测这些重命名而无需额外输入

删除属性

有关详细信息,请参阅“带有数据丢失的自动迁移”部分

我建议您将列直接添加到数据库到类,并在本地机器上进行测试。

【讨论】:

以上是关于使用 EF CodeF 和 mvc nugget Scaffold 发布后向 DB 添加列的主要内容,如果未能解决你的问题,请参考以下文章

将 asp.net 5 MVC 6 与 Identity 和 EF 6 一起使用的示例

EF6(代码优先)、MVC、Unity 和没有存储库的服务层

EF 5 一对多自引用 - 代码优先

从 EF 5 Code First 迁移生成完整的 SQL 脚本

ASP.NET MVC和EF集成AngularJS开发

与 MVC 3、.NET 4.5 和 EF 6 并行获取数据