2017-12-15 17 views
0

私はConcatを使用して2つのlinqクエリをマージしようとしています。しかし、私はクエリをコンパイルするときに2つのエラーが表示されます。Linqクエリが2つのテーブルを結合するのに失敗しましたレコード

のIQueryableを連結方式「の定義が含まれていない 『』と最良拡張メソッドのオーバーロード 『ParallelEnumerable.Concat(ParallelQuery、IEnumerableを)は』タイプの受信機を必要」ParallelQuery

第2のエラーは、すべての方法でありますコードはすべてのパス値を返しません

ここは私のインターフェイスです。

[OperationContract] 
     [WebInvoke(Method = "GET", 
    RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json, 
    //BodyStyle = WebMessageBodyStyle.Bare, 
    UriTemplate = "/TranscationDetails/{Account_Number}")] 
     string TranscationDetails(string Account_Number); 

ここに実装があります。

+0

'VARマージ= DepositQuery.Union(WithdrawQuery);' Current_Account_Deposit'& 'Current_Account_Withdraw'が正確に持っている場合は、'(利用可能同じ構造)。また、 'TranscationDetails'メソッドの文字列を返す必要があります(現在欠落しているか、クエリ結果を返すと' IQueryable'が使用されます)。 –

+0

'Union()'メソッドでどのような結果が得られますか? 'Union'を実行するには、両方のクエリ結果が同じ列リストを持たなければなりません。両方の結果セットが異なる場合は、 'ToList()'で 'IEnumerable'オブジェクトを作成し、' Union() 'を使用してください。 –

+0

アカウント番号を持つCurrent_Account_DepositテーブルとCurrent_Account_Withdrawテーブルからすべてのレコードを選択し、単一のクエリにマージする – Mohammad

答えて

1

2つのテーブルを結合して1つのクエリを作成し、結果セットからすべての必須プロパティを選択するだけで、2つのクエリを使用する必要はありません。その後、あなたはIEnumerableオブジェクト内に置くと、クエリ結果からJSONレスポンスを返すようにJSON serializerを使用することができます。

public string TranscationDetails(string Account_Number) 
{ 
    using (HalifaxDatabaseEntities context = new HalifaxDatabaseEntities()) 
    { 
     var CombinedQuery = (from x in context.Current_Account_Deposit 
          join y in context.Current_Account_Withdraw 
          on x.Account_Number equals y.Account_Number 
          where x.Account_Number == Convert.ToInt32(Account_Number) 
          select new { 
           x.Account_Number, 
           // put other properties here 
          }).ToList(); 

     var js = new System.Web.Script.Serialization.JavaScriptSerializer(); 

     return js.Serialize(CombinedQuery); // return JSON string 
    } 
} 
+0

私は使用しなければならないテーブルのプロパティは?当座預金または当座預金は引き落とされていますか? – Mohammad

+0

両方のテーブルでは、口座番号、取引タイプ、金額、口座所有者名などのプロパティを持っています。 – Mohammad

+0

必要に応じて、両方のテーブルプロパティを使用することができます。両方のテーブルからすべての結果を返すには、 'select new {x、y}'を使うこともできます。 –

関連する問題