【问题标题】:Linq2Entity Getting Values from reference TableLinq2Entity 从参考表中获取值
【发布时间】:2012-02-06 15:50:25
【问题描述】:

我有 3 张桌子

表:A - 援助 - 文字

表:B - 投标 - 文字

表:A_B(将两个主键都保存为外键的参考表) - 援助 - 出价

Entity Framework 知道表 A_B 只是一个引用表,不会在 DBModel 中创建它,而是保留表 A 和 B 中的引用。

我的问题是如何在没有实际拥有该表的情况下获取参考表中的数据?当我尝试使用表 A 中的引用访问表 B 的值时,我无法获得表 B 列的值。

        ObjectQuery<A> aTable = dbConnection.A;

        var result = from data in aTable
        where data.aID = '12'
        select data.B; //B is the reference to table B out of table A

我需要的是这样的:

        ObjectQuery<A> aTable = dbConnection.A;

        var result = from data in aTable
        where data.aID = '12'
        select data.B.bID;

如何使用表 A 和表 B 之间的引用从表 B 中获取数据?

使用:VS 2010 Prof,.Net 4,Linq2Entity

【问题讨论】:

  • 不能手动加入表格吗?
  • 这听起来像是多对多。然而,您正试图访问bId,就好像它是多对一关系一样。 A 对 B 的引用将是一个集合(B 对 A 的引用也是如此)。如果您只期望 A.aId = '12' 有一个 B,您可以使用 select data.B.First().bId。否则你可能想看看SelectMany

标签: linq reference entity


【解决方案1】:

正如 Gary 所说,您可以使用 First(如果您希望每个 A 有一个 B)、FirstOrDefault(如果您想要空值,而 A 没有 B)或 SelectMany(如果您希望每个 A 都有所有 B) 后者可以这样写:

 var result = from data in dbConnection.A
              from b in data.B
              select b.Id;

【讨论】:

猜你喜欢
  • 2017-09-01
  • 1970-01-01
  • 2019-11-22
  • 2020-08-11
  • 2018-12-06
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
相关资源
最近更新 更多