【问题标题】:LINQ-to-SQL Relationships/AssociationsLINQ-to-SQL 关系/关联
【发布时间】:2012-12-19 04:00:10
【问题描述】:

自从我使用 Linq-to-Sql 以来已经有一段时间了,但我再次尝试一下。我遇到了一个问题,我希望能够以我以前认为的某种方式访问​​数据,但我现在不确定。

如果我有以下三个 SIMPLE 表

Person
   - ID

Section
   - ID

PersonSections
   - PersonID
   - SectionID

PersonSections 表只是对 Person/Section 对象的查找。因此它是一对多的。一个人可以在多个部门。

我希望能够通过以下方式从 Linq-to-Sql DataContext 中调用它。

 MyDataContext db = new MyDataContext();

 var person = db.Sections.First(x => ...).Persons.First(x => x...) etc

 or

 var section = db.Persons.First(x => ...).Sections(x => x...) etc

我正在努力寻找更多关于这些关系的文档,因为我对它们有点新手,所以请轻视你的批评。

【问题讨论】:

  • 你应该看看 linq to EF,linq2sql 已经被弃用了
  • @CitadelCSAlum - 从技术上讲,PersonSections 允许 Person 和 Section 之间的多对多关系。如果您想要一个一对多的关系,这可以通过将 PersonID 添加到 Section 表来表示。但是,我不确定这里的问题是什么。是如何从部分到人,反之亦然?您是否尝试过 Sections.First().PersonSections.Person?

标签: c# sql linq-to-sql


【解决方案1】:

您提到了人与人之间的一对多关系。

LINQ2SQL 不太适合关系表,所以最初我建议将部分 id 设置为 person 表上的外键。

还有这个帖子

http://www.codeproject.com/Articles/39104/LINQ-to-SQL-Many-to-Many-Relationships

这解释了如何建立多对多关系。这可能是相同的,然后您可以在应用程序中添加逻辑来阻止关系双向发展。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2023-04-06
    • 2023-04-05
    相关资源
    最近更新 更多