2012-01-12 23 views
1

を使用して2つのテーブルを結合する -私は2つのLINQ持ってLINQ

最初のクエリ

var ab = from a in Items_worker.getCEAItems() 
       where a.ProjectCode == lbl_projectCode.Text 
       select new 
       { 
        a.ID 
       }; 

2番目のクエリ

var j = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
       orderby c.DateCreated 
       select c.ID; 

最初のクエリが...それらを結合する方法を疑問に思ったSQLクエリ、およびIMをだろう返品:

fasf-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

2番目のクエリを返します:

FASF-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

0000-0000-0000-0000-0000

1111-1111-1111-1111-1111

質問は、私は多分2つのテーブルを結合することができる方法です。 2番目のクエリが...最初のクエリで見つかった同じIDプラス「0000-0000-0000-0000-0000」2番目のクエリを含むIDで

のすべてのレコードを返す必要がありますここでの結果は次のようになります。

FASF-1212-1212-1212-1212

AFAA-1414-1414-1414-1414

0000-0000-0000-0000-0000

答えて

0

あなたは両方のクエリに参加するために労働組合を使用することができ、たとえば、次のような条件で2つ目のクエリを分割します。

var ab = from a in Items_worker.getCEAItems() 
      where a.ProjectCode == lbl_projectCode.Text 
      select new 
      { 
       a.ID 
      }; 


var j = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
      orderby c.DateCreated 
      select c.ID where c.ID.Equals("0000-0000-0000-0000-0000"); 

var j1 = from c in tblInc_worker.get(c => c.MarginID == MarginID && c.IncTypeID == "CAPEX") 
      orderby c.DateCreated 
      select c.ID where !(c.ID.Equals("0000-0000-0000-0000-0000")); 

var result = ab.Union(j.Union(j1)); 

希望するものは..

関連する問題