【问题标题】:Entity Data Model Wizard not creating tables in EDMX file实体数据模型向导不在 EDMX 文件中创建表
【发布时间】:2015-02-28 20:26:58
【问题描述】:

我正在尝试使用带有 Adventureworks2012 DB 的向导创建 ADO.NET 实体数据模型来使用数据库优先方法。

测试数据库连接是否有效,并将连接字符串添加到 App.Config。

除了标记为 (dbo) AWBuildVersionDatabaseLogErrorLog 的表之外,我将选择所有表。

当向导完成时,.edmx 文件为空,如果我在 XML 视图中查看文件,EntityContainer 为空。

创建模型后,它会在输出窗口中返回此错误:

由于以下异常,无法生成模型:'The 表 AdventureWorks2012.Production.Document 由 关系,但找不到。

我正在使用 VS 2010 和 .NET Framework 4.0

【问题讨论】:

    标签: ado.net entity-framework-4.1


    【解决方案1】:

    似乎Entity Framework不知道如何处理表字段上设置的hierarchyid等数据类型。我删除了实体列表的 Production.Document 表,以包括解决我的问题。

    还请注意,下面的此参考是针对来自 Code Plex SQL Sever 的带有 EF 版本 1.0 的 Adventureworks 2008R2,我正在使用来自使用 EF 版本 4.4 的同一 CodePlex 站点的 Adventureworks 2012。

    参考:http://msftdbprodsamples.codeplex.com/wikipage?title=AW2008Details

    注意:EF 1.0 兼容性问题

    Entity Framework 团队希望我们告诉您,AdventureWorks2008 在其使用的 Katmai 功能方面有点领先。实体框架不支持 AdventureWorks2008 中的某些数据类型(例如 hierarchyid 和 geometry)。解决方法是尽可能从模型中排除 Production.Document 之类的表,因为 Entity Framework 1.0 中当前不支持 hierarchyid 数据类型。不幸的是,从数据库更新模型的实体框架工具将拉入像 Production.Document 这样的表,即使它们在创建模型时被明确排除,因此目前不支持在 AdventureWorks2008R2 上使用该功能。我们期待后续版本的实体框架具有完整的 SQL Server 2008 类型支持。 bonniefe 最后于 2010 年 5 月 25 日下午 2:22 编辑,版本 17

    【讨论】:

      【解决方案2】:

      有一种方法可以绕过这个IF,您正试图从这个例子中学习而不做任何有意义的事情。我删除了有问题的表的外键并将其删除,并且能够成功获取

      【讨论】:

        【解决方案3】:

        为未创建的表(未转换为模型的表)的所有外键取消选中[允许 Nulls] 复选框(在表设计中)。

        然后您可以通过执行以下步骤更新您的模型以检索这些表:-

        第 1 步 - 右键单击​​ .EDMX 文件设计中的某个位置(即 Model1.EDMX [Diagram1]。 第 2 步 - 然后从上下文菜单中选择/从数据库更新模型...。 第 3 步 - 然后选择“添加” 第 4 步 - 然后展开“表格”复选框并选择您想要的表格(不是第一次创建的表格)。 第 5 步 - 然后单击完成按钮。 第 6 步 - 保存解决方案并希望一切顺利。

        注意:我使用的是 Visual Studio 2013。

        祝你好运。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-30
          • 1970-01-01
          • 2017-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多