2016-07-30 3 views
0

にLINQを使用して特別な値では無関係で複数のテーブルを検索し、私持って、次のLINQクエリ:1つのクエリが実体

var bas = new BaskoolEntities(); 
var radif = "0011395000505000821"; 
      var query = (from a in bas.ChekedList 
       where a.Radifkolsal == radif 
       from b in bas.PrioritedList 
       where b.Radifkolsal == radif 
       from c in bas.IssuedBills 
       where c.Radifkolsal == radif 
       select new 
       { 
        a, 
        b, 
        c 
       }).ToList(); 

私が使用して1つのクエリによって、データベース内の無い関係を持つ3つのテーブルのフィールドを見つけたいですC#のエンティティへのLinq。私はLinqの新しいそれはグーグルをプログラミングしているが、私にとって有用な結果が見つかりませんでした。 誰も私に解決策を教えてもらえますか?ありがとうございます。

+0

投稿したクエリで何が問題になっていますか?間違った結果?働いていない?例外?あなたが達成したいと思うもののSQLの代替案を持っていますか?期待される結果を投稿してください。 – user3185569

+0

あなたが現在行っていることは 'cross join'です – Rahul

+0

これは1つのクエリでは結果がありませんが、3つのクエリを別々に使用するとうまくいきます。私はSQLデータベースを持っています。 – kavir

答えて

1

あなたのコメントで述べたように、あなたが結果か、少なくともテーブルのいずれかがある場合、あなたはAny()を使用して、このような何かを行うことができます見つけたい:

var radif = "0011395000505000821"; 
var found = (from a in bas.ChekedList 
      where a.Radifkolsal == radif 
      || bas.PrioritedList.Any(p => p.Radifkolsal == radif) 
      || bas.IssuedBills.Any(i => i.Radifkolsal == radif) 
      select a).Any(); 

あなたがvar result = ..... select a.Radifkolsalを使用した場合、あなたはでしょう値0011395000505000821またはnullを取得します。あなたの目標が上記のクエリーとまったく同じものである(一致するかどうかを調べる)ことが目的でない限り、私にとっては役に立たないものです。

+0

正しい結果が得られず、何も見つかりませんでした。 – kavir

+0

@kavir 3テーブルに「0011395000505000821」のレコードがありますか? – user3185569

+0

私はそのうちの2つのレコードを持っています。 – kavir

関連する問題