C# 从现有SQL server数据库构建模型时缺少关联

C# 从现有SQL server数据库构建模型时缺少关联,c#,visual-studio-2010,sql-server-2008,entity-framework,edmx,C#,Visual Studio 2010,Sql Server 2008,Entity Framework,Edmx,编辑:该问题在较新版本的EF中得到解决。至少这是我的假设,因为我最近创建了一个新项目,并遵循相同的步骤,一切顺利!谢谢你的评论和帮助。我在下面保留了原始问题,没有涉及 我第一次使用实体框架。我有一个奇怪的问题:我在SQL Server上有一个小数据库。以下是management studio中的图表: 如您所见,外键都已定义。为了生成edmx模型,我选择了“新建项->ADO.NET实体数据模型->从数据库生成”。这就是我得到的: 除了两个协会外,所有协会都不见了!这很奇怪,因为好的旧L2可以

编辑:该问题在较新版本的EF中得到解决。至少这是我的假设,因为我最近创建了一个新项目,并遵循相同的步骤,一切顺利!谢谢你的评论和帮助。我在下面保留了原始问题,没有涉及

我第一次使用实体框架。我有一个奇怪的问题:我在SQL Server上有一个小数据库。以下是management studio中的图表:

如您所见,外键都已定义。为了生成edmx模型,我选择了“新建项->ADO.NET实体数据模型->从数据库生成”。这就是我得到的:

除了两个协会外,所有协会都不见了!这很奇怪,因为好的旧L2可以毫无问题地识别它们:


有人能帮我修复吗?

您是否选中了“在模型中包含外键列”选项



(来源:)

检查您的属性(在您的visual studio项目上)是否选择了.Net framework 4到目标framework

在本例中,我们的问题的答案是在一些主键上有唯一的非聚集索引-这导致EF模型出现问题(但不是在Linq2SQL中). 将这些键上的索引更改为唯一聚集索引修复了该问题

您将花费所有的时间和精力来使用这个工具,并试图找出它,您可以编写自己的存储过程和ADO.Net代码,并优化数据库性能。如果对这样一个简单的数据库来说有这么难,想象一下在一个更复杂的场景中会是什么样子。好吧,我以前从未使用过实体框架,所以我觉得我遗漏了一些东西。你是说即使是像这样最简单的事情也真的那么糟糕吗?我认为用新技术进行实验是很好的。但我想起了杰夫·阿特伍德(Jeff Atwood)最近的一条推文:到目前为止,该推文已被转发100次。尝试删除所有实体并重新创建它们,因为当你纠正关系或重命名列时,它不会更新“我不知道为什么”,但我经常会遇到这样的情况:验证你是否连接到了正确的数据库,而不是旧数据库对不起,我很晚才给你回电话。是的,我做到了。正如你所看到的,我只得到了两个关联,不是全部。你能为这些表生成DDL并发布吗?谢谢你的回答。我很感激。我差不多一年前问过这个问题。从现在到那时,我设法解决了这个问题。EF也已更新。因此,在这个阶段,我无法验证你的建议是否有效。我在问题的顶部添加了一个编辑,这样其他人就不会浪费时间添加新答案。我们有唯一的非聚集索引,它们正确地映射到EF 4.2和更高版本上,正如有人在另一个答案中写到的:“唯一索引允许1个空值,主键不允许空值。当零不等于零,甚至不等于另一个零时,如何匹配零?”