2016-05-14 6 views
0

私は、このSQLクエリがあります。のLINQとEntity Frameworkの、内部結合、グループ化、秩序メソッドの構文

SELECT 
    COUNT(PID.pid) AS Counted, 
    (SELECT TOP 1 Collect_id 
    FROM PID_Control 
    WHERE pid_controlY.org_pid = PID_Control.pid) as Collect_id 
FROM 
    PID 
INNER JOIN 
    PID_Control AS pid_controlY ON PID.pid = pid_controlY.pid 
GROUP BY 
    pid_controlY.Collect_id, pid_controlY.org_pid 

をそして私はLINQの中で同じことを書きたいが、私が処理するかどうかはわかりませんこのステートメント:

,(select top 1 Collect_id from PID_Control where pid_controlY.org_pid = 
PID_Control.pid) as Collect_id 

私はこのようにしましたか? =間違った線

var list = db.PID_Control 
      .Include(t => t.PID1) 
      .GroupBy(k => new { k.Collect_id }) 
      .Select(c => new Grouped 
       { 
        Collect_id = ??? 
        Counted = c.Select(q => q.PID1.pid1).Count(), 
       }) 
       .ToList(); 

Linqでそれを作る方法?

クラス

public partial class PID_Control 
{ 
    public int pid_control_id { get; set; } 
    public Nullable<int> pid { get; set; } 
    public Nullable<int> Collect_id { get; set; }  
    public virtual PID PID1 { get; set; } 
} 


public partial class PID 
{ 
    public PID() 
    { 
     this.PID_Control = new HashSet<PID_Control>(); 
    } 
    public int pid1 { get; set; }  
    public virtual ICollection<PID_Control> PID_Control { get; set; } 
} 
+0

がここにあるだけでなく –

+0

てきたが、今 – user4144972

答えて

0

私はあなたが達成しようとしますが、純粋に、これはそれを行う必要があり、データを見ているものは考えていません。自分を支持し、利用を行う、ところで

from pc in db.PID_Controls 
group pc by new { pc.Collect_id, pc.pid } into pcgrp 
select new Grouped 
{ 
    Collect_Id = pcgrp.SelectMany(pc => pc.PID.PID_Controls) 
         .Select(pc2 => pc2.Collect_id) 
         .FirstOrDefault(), 
    Counted = pcgrp.Count() 
} 

をコレクションの複数の名前(および他のC#命名規則に従うことでも問題はありません)。

+0

それは問題が動作しませんし、それらを追加ここに2つのエンティティクラスとdbcontextクラスを追加してください:pid_controlY.org_pid = PID_Control.pid、異なるが 加入しかし、私はあなたがミックスできることになりましたdidntのlinq同じクエリの構文とメソッドの構文を照会します。名前に関するヒントをありがとう:) – user4144972

+0

「異なる結合」とはどういう意味ですか?どちらのフィールドに 'PID'と' PID_Control'が接続されていますか? –

+0

PIDによるpid_controlY.pid = PID_Control.pid – user4144972

関連する問題