实体数据模型向导不在EDMX文件中创建表

时间:2012-12-20 05:00:28

标签: ado.net entity-framework-4.1

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

测试数据库连接是否正常,连接字符串已添加到App.Config。

我正在选择除标记为(dbo)AWBuildVersionDatabaseLogErrorLog的所有表格。

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

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

  

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

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

3 个答案:

答案 0 :(得分:4)

似乎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兼容性问题

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

答案 1 :(得分:0)

有一种方法可以解决这个 IF 你试图从这个例子中学习并且没有做任何有意义的事情。我删除了违规表的外键并将其删除,并且能够成功获取

答案 2 :(得分:0)

取消选中[Allow nulls]复选框(在表格设计中),查看未创建的表格的所有外键(未转换为模型的表格)。

enter image description here

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

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

enter image description here

注意:我正在使用Visual Studio 2013。

祝你好运。