使用 ASP.NET 动态数据/LINQ to SQL,如何让两个表字段与同一个外键有关系?

Posted

技术标签:

【中文标题】使用 ASP.NET 动态数据/LINQ to SQL,如何让两个表字段与同一个外键有关系?【英文标题】:Using ASP.NET Dynamic Data / LINQ to SQL, how do you have two table fields have a relationship to the same foreign key? 【发布时间】:2010-09-05 09:42:08 【问题描述】:

我正在为一个项目使用 ASP.NET 动态数据,并且我有一个表,其中有两个单独的字段链接到不同表中的相同外键。

这种关系在 SQL Server 中运行良好。

但是,在 ASP.NET 动态数据模型中的 LINQ to SQL 模型中,仅反映第一个字段的关系。如果我尝试手动添加第二个关系,它会抱怨它“无法创建关联“ForeignTable_BaseTable”。同一个属性被多次列出:“Id”。”

This MSDN article 提供了如下有用的建议:

检查消息并注意消息中指定的属性。 单击“确定”关闭消息框。 检查关联属性并删除重复条目。 点击确定。

【问题讨论】:

【参考方案1】:

解决方案是删除两个表并将其重新添加到 LINQ to SQL 图表中,而不仅仅是您添加了第二个字段和键的那个。

另外,您似乎可以使用 LINQ to SQL 接口建立两个关联 - 只是不要尝试将它们捆绑到一个关联中。

【讨论】:

以上是关于使用 ASP.NET 动态数据/LINQ to SQL,如何让两个表字段与同一个外键有关系?的主要内容,如果未能解决你的问题,请参考以下文章

使用asp.net mvc + linq to sql如何循环输入结果集

asp.net mvc中使用linq to sql查询数据集(IQueryable类型) 怎么用foreach循环去数据集的数据?

Asp.Net 5 缺少 Linq to Sql 类

ASP.NET MVC 4、EF 和 LINQ:为多对多关系创建特定的 LINQ 查询

在 ASP.NET MVC2 项目中使用 LINQ to SQL

如何在 Web 服务 asp.net 中返回 linq to sql 查询结果?