1

前言:

我正在尝试通过从现有程序创建新应用程序来学习 C#/LINQ。本质上,我正在将 SQL 存储过程移植到 C#/LINQ 代码中,其中包含一个新数据库和稍微不同的功能。尽管我在开始时得到了帮助,但我遇到了第一个有些人可能会说的微不足道的问题。

尽管非常感谢任何正确的答案,但方向也是如此。(例如,它只是一个简单的 Group Into 子句的查询吗?我错过了 stackoverflow 中的类似问题吗?由于浏览了几个月的 stackoverflow,我有很多学习工具可供使用,101 LINQ Samples,C# In Depth, C# 4.0 in a Nutshell and LINQPad信息很棒,只是我有点不知所措。

问题:

我有下表:

CREATE TABLE [dbo].[User]
([Id] [nvarchar](255) NOT NULL,
 [Name] [nvarchar](max) NOT NULL,
 [LineManagerId] [nvarchar](255) NULL,
 [Email] [nvarchar](max) NOT NULL,
 [IsAdmin] [bit] NULL,
)

主键是IdLineManagerId是外键Id

我想编写 LINQ 代码来查询数据库以查找是否IdLineManagerIdAND,如果是,请选择所有具有的 Id LineMangerId

我进行了如下尝试,但缺少一些我认为在我对 LINQ 的理解中非常基本的技能。

var ismanager = from manager in Users
                join man in Users on manager.Id equals man.LineManagerId
                select man.LineManagerId;   

谢谢阅读。

4

2 回答 2

2

我想编写 LINQ 代码来查询数据库以查找 Id 是否为 LineManagerId,如果是,请选择 LineMangerId 具有的所有 Id?

我不太确定,为什么你需要在这里加入。

IQueryable<User> query = Users.Where(x => x.LineManagerId == id);
bool isManager = query.Any(); // first query to check if manager
if(isManager){
   IEnumerable<User> users = query.Select(x => x.Id).ToArray(); // second query to fetch Ids
}
于 2012-07-11T14:54:09.030 回答
0

我想编写 LINQ 代码来查询数据库以查找 Id 是否为 LineManagerId,如果是,请选择 LineMangerId 具有的所有 Id?

从字面上看,这是两个单独的查询,但这里有一个可以为您提供直线经理下的所有用户:

string managerID = "1";  // The manager ID to query
var userList = from manager in Users
   join u in Users on manager.Id equals u.LineManagerId
   where (manager.Id == managerID)
   select u.Id ;  
于 2012-07-11T14:41:21.497 回答