我有两个项目使用遗留数据库,表之间没有关联.在一个,如果我在DBML文件中创建关联,我可以像这样引用LINQ中的关联:
From c In context.Cities Where c.city_name = "Portland" _ Select c.State.state_name
(假设我添加了链路从City.state_abbr
到State.state_abbr
在DBML文件).
在使用不同数据库的不同项目中,手动添加关联似乎并没有给我这个功能,我不得不像这样编写LINQ查询:
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:Type元素'ChildTable'的Association元素'ParentTable_ChildTable'的Type属性'[ParentTable]'没有主键.不会为关联生成代码.
在这种情况下,您需要做的就是确保两个表都设置了主键并重新保存dbml文件.这将调用自定义工具,该工具将更新designer.cs文件并为关联创建代码.