C# 简单SQL Server表LINQ学习查询

C# 简单SQL Server表LINQ学习查询,c#,sql-server,linq,C#,Sql Server,Linq,序言: 我试图通过从现有程序创建一个新的应用程序来学习C/LINQ。本质上,我正在使用一个新的数据库和稍微不同的功能将SQL存储过程移植到C/LINQ代码中。尽管我得到了一些帮助,但我还是遇到了我的第一个问题,有些人可能会说这是一个微不足道的问题 尽管任何正确的答案都将非常感谢,但方向也是如此。e、 它仅仅是一个带有Group Into子句的查询吗?我是否在stackoverflow中遗漏了一个类似的问题?我有很多学习工具可供我使用,这要感谢我几个月来浏览stackoverflow,深入了解C,

序言:

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

尽管任何正确的答案都将非常感谢,但方向也是如此。e、 它仅仅是一个带有Group Into子句的查询吗?我是否在stackoverflow中遗漏了一个类似的问题?我有很多学习工具可供我使用,这要感谢我几个月来浏览stackoverflow,深入了解C,简而言之就是C4.0。信息很好,只是我有点被它淹没了

问题:

我有下表:

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,
)
主键是Id,LineManagerId是Id的外键

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

我做了如下尝试,但我遗漏了一些我认为是我理解LINQ的基本技能

var ismanager = from manager in Users
                join man in Users on manager.Id equals man.LineManagerId
                select man.LineManagerId;   
谢谢你的阅读

我想编写LINQ代码来查询数据库,以查找Id是否为LineManagerId,如果是,请选择该LineManagerId拥有的所有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 ;  
我想编写LINQ代码来查询数据库,以查找Id是否为LineManagerId,如果是,请选择该LineManagerId拥有的所有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
}

给它一个快照:var ismanager=from Users user join on manager,其中manager.Id等于user.LineManagerId选择user.LineManagerId;我想答案是我一次问了两个问题,但没有正确理解我的连接。我已将我的问题标记为以下答案。我将一些测试值放入数据库,如下所示。插入到[User][Id]、[Name]、[LineManagerId]、[Email]、[IsAdmin]值'account\Alice'、'Alice'、'account\Bob'、'alice@alice.com' ,我要感谢所有的响应者。我已经有很多东西要学了。再次感谢。