【问题标题】:Problems with updating Views in Entity Framework在实体框架中更新视图的问题
【发布时间】:2015-10-30 12:36:44
【问题描述】:

由于某些原因,我们需要在Entity Framework 中更新Views。 所以我们关注了这个solution on another question,它就像一个魅力!

但是问题出在这里:
如果我们更新我们的模型(对于一些新的字段或表/视图),完整的映射将被破坏,更新后我们会收到警告

错误 11007:实体类型“UpdateView1”未映射。

在此之后,甚至无法加载实体,因为所有映射都丢失了。
那么如何设计视图以便能够使用视图发布更新并能够更新 edmx 文件呢?

【问题讨论】:

  • MS 甚至不喜欢 edmx 文件。他们正在从 EF 中删除它。切换到代码优先。
  • 不能用Code First,数据库真的老了,真的很大……
  • “模型”是什么意思?您是否尝试向 db 添加一列,重新加载,然后更新类?
  • 由于功能名称,这是一个常见的误解。 Code First 并不意味着您必须从代码开始。您可以从数据库开始,然后编写 POCO 以匹配它(如您的情况)。这样做可以让您保留所有映射等,因为您只需调整代码以匹配数据库中已经存在的结构。
  • @FDL 没错,我们有时可能需要数据库中的新字段。然后,当我们更新模型/edmx 文件时,所有映射都会丢失。

标签: c# sql-server entity-framework


【解决方案1】:

MS 将在实体框架中放弃对 EDMX 文件的支持 - 部分原因是难以保持数据库、EDMX 和 POCO 全部同步,正如您所遇到的那样。 (任何人都可以编辑这 3 个中的任何一个,然后在同步完成时更改将丢失)。

因此他们建议使用 Code First 方法。 Code First 有点用词不当,会引起一些混乱。

Code First 并不意味着您必须从代码开始。
您可以从数据库开始,然后编写 POCO 以匹配它(如您的情况)。这样做可以让您保留所有映射等,因为您只需调整代码以匹配数据库中已经存在的结构。

另一个误解是您必须使用迁移。你不。欢迎您不要启用迁移并手动编辑数据库架构和 POCO,只要确保它们保持同步即可。

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多