1

前文:

既存のプログラムから新しいアプリケーションを作成して、C#/LINQを学習しようとしています。基本的に、SQLストアドプロシージャを新しいデータベースとわずかに異なる機能を備えたC#/LINQコードに移植しています。私は始めるのを手伝ってくれましたが、些細な問題と言われるかもしれないものに最初に遭遇しました。

正解は大歓迎ですが、方向性もありがたいです。(たとえば、単にGroup Into句を使用したクエリですか?stackoverflowで同様の質問を見逃しましたか?stackoverflowを数か月間閲覧したおかげで、たくさんの学習ツールを自由に使用できます。101LINQ Samples、C#In Depth、一言で言えばC#4.0と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,
)

主キーはId、でLineManagerIdあり、はの外部キーですId

IdLINQコードを記述して、データベースにクエリを実行し、がLineManagerIdANDであるかどうかを確認したいのですが、そうである場合は、その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

Id が LineManagerId であるかどうかを確認するためにデータベースにクエリを実行する LINQ コードを書きたいと思います。

よくわかりませんが、なぜここで結合が必要なのですか。

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

Id が LineManagerId であるかどうかを確認するためにデータベースにクエリを実行する LINQ コードを書きたいと思います。

文字通り、これは 2 つの別個のクエリですが、ライン マネージャーの下にあるすべてのユーザーを取得するクエリを次に示します。

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 に答える