【问题标题】:SQL query with linq in ASP.NET MVC project在 ASP.NET MVC 项目中使用 linq 进行 SQL 查询
【发布时间】:2016-07-10 16:14:00
【问题描述】:

我在想出正确的查询以从我的 ERD 中获取数据时遇到问题。因此,为了清楚起见,下图中是简化版本。

所以一个用户可以加入一个组,这个关系保存在 UserPerGroup 表中,一个组可以有事件。现在我希望能够获取用户所属的每个组的所有事件(描述/对象)。我在 MVC .NET 项目中使用 Linq,但不介意我是否得到原始 (MS) SQL 查询。

谢谢

Simplified ERD

编辑:下面的查询可以转换为以下 Linq 格式吗?

return db.Event. ... .ToList();

这会返回一个 IEnumbarable 吗?

select e.id,e.[description]  from [User] u 
Inner join UserPerGroup upg on upg.userid=u.id 
Inner join [event] e on e.groupid=upg.groupid
Where u.id=[USER_ID_VALUE]

来自 Rohit Padma 的查询

【问题讨论】:

    标签: sql asp.net-mvc linq linq-to-sql


    【解决方案1】:

    您可以使用简单的 LINQ join 运算符来关联这样的实体(我在猜测名称):

    int userId = ...;
    
    var query =
        from e in db.Event
        join ug in db.UsersPerGroup on e.GroupId equals ug.GroupId
        where ug.UserId == userId
        select e;
    
    return query.ToList();
    

    【讨论】:

    • 谢谢,我不知道这个,我只看到了Linq的基本情况。这对我解决未来的问题有很大帮助!
    【解决方案2】:

    希望这个原始 SQL 查询有所帮助。

    select e.id,e.[description]  from [User] u 
    Inner join UserPerGroup upg on upg.userid=u.id 
    Inner join [event] e on e.groupid=upg.groupid
    Where u.id=[USER_ID_VALUE]
    

    【讨论】:

    • 会给你+1的查询,但我的声誉很低。但再次感谢!
    • 没关系 :) 希望对您有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多