【问题标题】:Is it beneficial to use multicolumn (composite) primary keys when using Linq to SQL?使用 Linq to SQL 时使用多列(复合)主键是否有益?
【发布时间】:2009-03-15 02:26:04
【问题描述】:

在使用 Linq to SQL 时,对多对多关系表使用多列(复合)主键是否有益?

或者我应该只添加一个标识列作为非聚集主键并适当地索引 FK 列?

【问题讨论】:

    标签: sql linq linq-to-sql


    【解决方案1】:

    不是 LINQ 问题。如果您的架构需要它们,请使用它们。如果你不这样做,不要。无论哪种方式,LINQ 都能很好地处理您的架构。

    LINQ to SQL 处理不好的一个领域是多列/键映射表,用于连接多对多关系,但我不会说这完全属于您的问题所涉及的类别。您仍然可以在 LINQ 中对映射表执行 CRUD 操作,但 LINQ 无法遍历多对多映射表所呈现的关系。 (LINQ 可以很好地处理一对一和一对多表。)

    我不能谈论实体框架的任何问题,但如果 EF 对多列/多键表有任何问题,我会感到非常惊讶。

    【讨论】:

    • 其实这就是多对多关系表的问题,谢谢
    【解决方案2】:

    如果在您的域中拥有一个多列复合键是有意义的,那么就使用一个。否则使用通常的标识列作为代理主键。

    编辑:这是一般建议,没有考虑使用 LINQtoSQL 实现的任何技术方面。这些可能很有趣:

    How to: Handle Composite Keys in Queries (LINQ to SQL)

    LINQ To SQL Samples

    Linq to SQL DTOs and composite objects

    【讨论】:

    • 我猜这意味着 Linq to SQL 可以处理复合键而无需分解或额外的努力?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多