1

私はac#プロジェクトで以下のタスクを適切に実装する方法に取り組んできました。

ふりをして...

特定のデータベースのテーブル(db1)に存在するが、別の特定のデータベースのテーブル(db2)には存在しないすべてのデータを取得します。

両方のテーブルに共通のIDがあります

私はこれについてたくさんの投稿に直面しましたが、私の問題を解決するものはないようです。何か助けはありますか?

編集:

Select all data 
on table_x from database_x 
Where item_id from table_x are not found inside table_y from database_y

=>リスト形式でデータを返す

4

2 に答える 2

5

これが私が探していた解決策でした。@ user1949706の回答に基づいて、LINQを使用して両方のテーブルから(これも異なるデータベースから)すべてのデータを選択し、それをメモリに配置しました。

ここでLINQを使用してこれを行う方法に関する私の質問に完全に答えるには、次のようにします。

//DB1
db1DataContext db1 = new db1DataContext();
//DB2
db2DataContext db2 = new db2DataContext();


//SELECT ALL DATA FROM DB1
var result1 = (from e in db1.Items
               select e
              ).ToList();

//SELECT ALL DATA FROM DB2
var result2 = (from e in db2.Item2s
               select e
              ).ToList();

//SELECT ALL ELEMENTS FROM DB2.TABLE THAT DO NOT EXISTS ON DB1.TABLE BASED ON EXISTING ID's            
var resultFinal = ( from e in result1
                    where !(from m in result2
                            select m.Id).Contains(e.Id)
                    select e
                  ).ToList();

また、この質問に答えてくれたロバート・ラウズと、助けようとした他のすべての人にも感謝します。

それが他の誰かに役立つことを願っています!

于 2013-01-07T10:24:52.667 に答える
2

この回答によると、LINQを使用してさまざまなデータベースのテーブルを結合できます。サーバー間でも参加できます。

もう1つのオプションは、メモリ内の必要なすべてのデータを読み取り、メモリ内の両方のテーブルを結合することです(そのためにLINQを引き続き使用できます)。

于 2013-01-04T20:28:26.277 に答える