【问题标题】:Getting columns from join columns with EF query使用 EF 查询从连接列中获取列
【发布时间】:2013-06-19 16:23:58
【问题描述】:

如何使用 Entity 框架和 linq 从各种连接表中获取列?

我的sql语句如下:

SELECT
    j1.Username, j2.points, j3.address1
FROM
    users j1
    INNER JOIN points j2 on j1.userId = j2.UserId
    INNER JOIN addresses j3 on j3.userId = j1.UserId

所以我很困惑如何将其转换为从连接的表/实体返回列的 EF/linq 查询。

【问题讨论】:

    标签: c# linq entity-framework


    【解决方案1】:

    您绝对应该在提问之前发布您尝试过的内容...

    应该是这样的:

    var results = from j1 in context.users
                  join j2 in context.points on j1.UserId equals j2.UserId
                  join j3 in context.addresses on j1.UserId equals j3.UserId
                  select new { j1.Username, j2.points, j3.address1 }
    

    它会给你一个匿名对象的集合,其中包含你的 3 列值。

    【讨论】:

    • 啊,好的,谢谢。现在,如果我添加一个像 group j1 by j1.CountryCode into g1 这样的 group by 子句,这会导致问题,因为现在输出似乎被投影到变量 g1 中??
    • 是的,这样分组后你​​会得到IEnumerable<IGrouping<string, anonymous_type>>
    猜你喜欢
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多