LINQ到SQL不识别新关联?

LINQ到SQL不识别新关联?,linq,linq-to-sql,Linq,Linq To Sql,我有两个项目使用遗留数据库,表之间没有关联。在一种情况下,如果我在DBML文件中创建关联,我可以像这样引用LINQ中的关联: From c In context.Cities Where c.city_name = "Portland" _ Select c.State.state_name From c In context.Cities Where c.city_name = "Portland" _ Join s In context.States On c.state_abbr = s

我有两个项目使用遗留数据库,表之间没有关联。在一种情况下,如果我在DBML文件中创建关联,我可以像这样引用LINQ中的关联:

From c In context.Cities Where c.city_name = "Portland" _
Select c.State.state_name
From c In context.Cities Where c.city_name = "Portland" _
Join s In context.States On c.state_abbr = s.state_abbr _
Select s.state_name
(假设我在DBML文件中添加了从
City.state\u abbr
state.state\u abbr
的链接。)

在使用不同数据库的不同项目中,手动添加关联似乎无法提供该功能,我不得不这样编写LINQ查询:

From c In context.Cities Where c.city_name = "Portland" _
Select c.State.state_name
From c In context.Cities Where c.city_name = "Portland" _
Join s In context.States On c.state_abbr = s.state_abbr _
Select s.state_name
你知道我在第二个项目中会错过什么吗

注意:这些完全是人为设计的示例-真正的源表彼此完全不同,而且非常神秘。

查看您的页面。您可能会在其中包含以下内容:

DBML1062:类型属性 关联的“[ParentTable]” 的元素“ParentTable\u ChildTable” 类型元素“ChildTable”不可用 有一个主键。没有代码将被删除 为关联生成


在这种情况下,您需要做的就是确保两个表都有一个主键集,然后重新保存dbml文件。这将调用自定义工具,该工具将更新designer.cs文件并为关联创建代码。

我的问题似乎是我的表在第二个项目中没有主键。正如我所说的,这些是遗留表,所以我必须在数据库上下文中而不是数据库本身中进行链接和主键的工作,而第二次我忘记了指定主键。当您没有发现它时会感到沮丧,但现在它是有意义的。

有时,当所有配置都正确但仍然不工作时,解决方案可以像重新启动Visual Studio一样简单


我不知道为什么有时会发生这种情况,但我想我应该添加这个答案,因为我自己也做了一些搜索,似乎还没有人提出过这个建议…

你找到过这个问题的答案吗?我自己也遇到了同样的问题…找到了解决问题的方法,请参阅我发布的答案:天哪,我希望我能早点尝试。我浪费了大约两个小时试图让它工作,这只是对一个混蛋。删除appData临时文件并重新启动VS对我有效。