【发布时间】:2009-03-15 02:26:04
【问题描述】:
在使用 Linq to SQL 时,对多对多关系表使用多列(复合)主键是否有益?
或者我应该只添加一个标识列作为非聚集主键并适当地索引 FK 列?
【问题讨论】:
标签: sql linq linq-to-sql
在使用 Linq to SQL 时,对多对多关系表使用多列(复合)主键是否有益?
或者我应该只添加一个标识列作为非聚集主键并适当地索引 FK 列?
【问题讨论】:
标签: sql linq linq-to-sql
不是 LINQ 问题。如果您的架构需要它们,请使用它们。如果你不这样做,不要。无论哪种方式,LINQ 都能很好地处理您的架构。
LINQ to SQL 处理不好的一个领域是多列/键映射表,用于连接多对多关系,但我不会说这完全属于您的问题所涉及的类别。您仍然可以在 LINQ 中对映射表执行 CRUD 操作,但 LINQ 无法遍历多对多映射表所呈现的关系。 (LINQ 可以很好地处理一对一和一对多表。)
我不能谈论实体框架的任何问题,但如果 EF 对多列/多键表有任何问题,我会感到非常惊讶。
【讨论】:
如果在您的域中拥有一个多列复合键是有意义的,那么就使用一个。否则使用通常的标识列作为代理主键。
编辑:这是一般建议,没有考虑使用 LINQtoSQL 实现的任何技术方面。这些可能很有趣:
【讨论】: