【问题标题】:Entity Framework 4.0 generating read only model when I create model from existing database当我从现有数据库创建模型时,Entity Framework 4.0 生成只读模型
【发布时间】:2014-03-22 04:57:57
【问题描述】:

我正在开发一个自定义 ado.net 提供程序,并使用该提供程序在 Visual Studio 2010 中集成实体框架支持。我正在创建所有可能的映射并从数据库中为表对象读取所有相关元数据。对于我的测试,一个表包含主键和其他字段。当我使用此表从数据库创建模型时,我得到一个包含所有列映射和所有内容的模型,但我也收到以下错误消息:

生成的模型带有警告或错误。 有关详细信息,请参阅错误列表。在运行您的应用程序之前,必须解决这些问题。 从数据库加载元数据耗时 00:00:11.4799371。 生成模型耗时 00:00:04.2751189。 将连接字符串添加到 App.Config 文件。 编写 .edmx 文件耗时 00:00:00.0005060。

如果我用 XML 编辑器打开 .edmx 文件,我会看到以下错误:

<!--Errors Found During Generation:
  warning 6002: The table/view 'sqlfire.APP.CUSTOMERS' does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view.
  -->

它还为表添加了一个带有 SELECT ... 语句的 DefiningQuery。

我正在兜圈子寻找解决方案,并在这个问题上拼命寻求帮助。

【问题讨论】:

  • 好问题亲爱的..我有同样的问题

标签: c# sql entity-framework


【解决方案1】:

从错误消息看来,您的表/视图之一没有主键EF 在每个表中都需要一个 Primary-Key 以生成实体键。

您仍然可以运行您的应用程序,但我强烈建议您按照警告添加主键。

【讨论】:

  • 不幸的是,这似乎不是问题所在。我在桌子上有一个主键。我正在研究实体框架的内部与基于 java 的数据库的自定义 ADO.NET 驱动程序的集成。当 EF 代码使用所需的 API 查询数据库时,它会返回元数据,清楚地显示表中存在 PRIMARY 键,但是在生成模型 XML 时,它给了我问题。我正在寻找可能缺少的内部解决方案。 Microsoft EF 组或 MySQL 组中的任何人都可能处理过此类问题。感谢您的调查。
  • 我遇到了完全相同的问题。我们有 MS SQL Server 与链接的 Oracle 数据库和 Oracle 表上的视图。从视图生成实体时,我遇到了这个问题,它不会生成类。我手动设置了所有的键,但它仍然不会生成。
  • 我在stackoverflow.com/questions/2189515/…链接中得到了最高评价。
猜你喜欢
  • 2011-07-07
  • 2017-06-01
  • 2021-06-30
  • 2011-05-30
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多