【问题标题】:Polymorphic associations in LINQ to SQLLINQ to SQL 中的多态关联
【发布时间】:2009-02-04 12:12:45
【问题描述】:

LINQ to SQL 是否像 ruby​​ on rails 活动记录一样提供开箱即用的多态关联?如果没有,是否有任何解决方法来手动映射这些关联?

【问题讨论】:

    标签: c# .net linq activerecord


    【解决方案1】:

    同意。我发现没有办法做到这一点,也没有使用设计器,也没有手动附加类/方法属性。此外,多态关联不可能有外键约束。我放弃了这个选项,谢谢。

    【讨论】:

      【解决方案2】:

      已编辑

      SQL Server 不允许您在不是主键或没有唯一约束(或索引)的列上具有外键关系。让多个表使用子表中的同一列作为外键似乎没有任何限制。 DBML 设计器确实发现了这些关系,并将在您导入表时创建与两个父表的关联。然而,设计者生成的代码似乎只会为其中一个关联生成。也就是说,设计者正确地显示了关联,但除了其中一个之外,所有的代码都被省略了。此外,在设计器生成的代码中似乎也没有正确定义可扩展性方法和属性设置器。

      如果您在设计器中手动添加关联,似乎也是如此。代码中只实现了一个实际关联,而另一个父类的代码似乎无法挽回。您可能可以使用部分类实现来添加所需的功能以匹配设计器将生成的功能,但我还没有尝试过。

      此外,LINQ2SQL 不支持开箱即用的多对多关系。你被限制在 1-1 和 1-many 中,无需自己编写代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多