2016-12-04 4 views
0

だから私はgroup joinleft outer joinであることを知っていると信じています。しかし、結合テーブルプロパティがnullであるかどうかを確認する必要があります。しかし、私はそれがまだ働いていない。Linqグループのjoinとwhereステートメントが結合テーブルのプロパティ

だから私は基本的に

LINQのエンティティフレームワークでは、このクエリと同等のものを必要とする
SELECT 
    id, test, test2 
FROM Table1 
LEFT OUTER JOIN Table2 ON 
    table1.id = table2.id 
WHERE table2.example = NULL; 

私はラムダでなく、まだ成功せず、これを行うことを試みました。 whereステートメントのtable2プロパティーサンプルを保持できないようです。あなたがチェックアウトする場合があります

+1

あなたはすでにしようと試み、コードを投稿することができますか? – C1sc0

+0

[Linq to Sql:複数の左外部結合](http://stackoverflow.com/questions/267488/linq-to-sql-multiple-left-outer-joins)の可能な複製 –

答えて

0

http://www.sqltolinq.com/

Linqerは、LINQ変換ツールへのSQLです。 LINQを学び、既存のSQL文を変換するのに役立ちます。

すべてのSQL文をLINQに変換できるわけではありませんが、Linqerはさまざまな種類のSQL式をカバーしています。

EF dbcontextにTable1とTable2があると仮定します。

from Table1 in context 
from Table2 in context 
    .Where(t2=> t2.ID == Table1.ID && t2.example == null).DefaultIfEmpty() 
select new 
{ 
    id= Table1.ID 
    ,test = Table1.Test 
    ,test2 = Table2.Test 
} 
1

あなたは、LINQ拡張メソッド(GroupJoin)を使用してこの例を流れることができる。

Table1.GroupJoin(Table2, 
        x => x.ID, 
        y => y.ID, 
        (tbl1, tbl2) => new {Table1=tbl1, Table2 =tbl2.DefaultIfEmpty()}) 
        .SelectMany(
        tbl => tbl.Table2.Where(t2 => t2.example == null).Select(x => new 
        { 
         id= tbl.Table1.ID, 
         test = tbl.Table1.Test, 
         test2 = tbl.Table2.Test 
        }))ToList(); 
関連する問題