首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架v6.13 -向表中添加新列

实体框架v6.13 -向表中添加新列
EN

Stack Overflow用户
提问于 2016-06-13 22:46:06
回答 3查看 1.9K关注 0票数 1

我有几个现有的Windows控制台应用程序,它们使用实体框架6.13访问数据库表。我希望在数据库表中添加一个新列。当新列被添加到表的末尾时,现有的控制台应用程序会失败吗?我不会更改任何现有的列名或属性。我不会更改表中列的顺序。我计划将该列添加到数据库表的末尾。

使用实体框架模型(在没有新列的情况下访问表)的现有生产控制台应用程序会因更改而失败吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-14 10:00:49

不,即使将新列添加到现有数据库表,也不会使现有控制台应用程序失败。因为,控制台应用程序的实体框架配置将不知道添加到数据库端的新列。

EF Fluent API总是尝试按照您的配置使用数据库表映射您的域模型。如果它的映射系统将运行没有任何错误。因此,这里您没有触及现有的Database列,而只是添加了新的列。因此,EF Fluent API可以成功地将现有数据库映射为控制台应用程序的域模型,控制台应用程序可以成功地运行。

注意:我假设新添加的列没有任何约束,如NULL、主键等。

票数 2
EN

Stack Overflow用户

发布于 2016-06-14 01:23:05

这取决于如何在应用程序中初始化数据库。EF对DbContext的初始化进行比较,如果数据库架构与DbContext中的模型不同,默认情况下它将产生错误。您可以使用不同的初始化策略自定义行为。

票数 0
EN

Stack Overflow用户

发布于 2016-06-14 02:16:02

假设列上没有约束,向数据库中添加列不会导致实体框架模型出现任何错误。EF创建的任何记录都将该列设置为null,任何更新都不会更改该列的值。

请注意,EF不会注意到您的列,如果以后进行迁移或使用dropCreate(关于模型更改/始终)初始化策略,它可能会丢失。

此外,数据库中列的顺序不会影响实体框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37800328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档