こんにちはどのようにSQLにlinqの結合を行うのですか?linqでsqlへの結合を行うには?
私は彼らにキーワードの参加とグループ参加があるのを見ますが、どのような種類の結合ですか?
左、右、十字、内側?
また、完了したら特定の列を選択するにはどうすればよいですか?
表Aから選択した列1、列2
等。
いずれのクエリまたはメソッド構文も問題ありません。私はまだ自分の好きなものを決めることはできません。
こんにちはどのようにSQLにlinqの結合を行うのですか?linqでsqlへの結合を行うには?
私は彼らにキーワードの参加とグループ参加があるのを見ますが、どのような種類の結合ですか?
左、右、十字、内側?
また、完了したら特定の列を選択するにはどうすればよいですか?
表Aから選択した列1、列2
等。
いずれのクエリまたはメソッド構文も問題ありません。私はまだ自分の好きなものを決めることはできません。
最初のステップとして、Scott Guthrieの優れたUsing Linq-to-SQLマルチパートのチュートリアルを読むことをお勧めします。 Linq-to-SQLの基本はたくさんあります。
Hooked on LINQ 5 minute overview - LINQ-to-SQLでは、Linq-to-SQLでよく言われているように、実際にはJOINを自分で表現する必要はありません.LINQ-to-SQLは、エンティティ参照とエンティティセット参照。
あなたが実際にJOINを明示的に使用しなければならないと判断した場合、Bilal Haidarは自分のブログの投稿でexplicit LEFT OUTER JOINをうまく実行する方法を示します。
INNER JOINを比較的簡単ですが、「通常」の場合 - あなたは自分のクエリに
from c in customers
join o in orders on o.customerid equals c.customerid
を追加します。
個々のフィールドの選択については、Scott Guthrieのイントロ記事シリーズを参照してください - 彼はそれを非常に詳細に説明します!
基本的には、3つのいずれか行うことができます。
これが注文を持っているすべての顧客を選択することになるにいくつかのフィールドを選択します
from c in customers
join o in orders on o.customerid equals c.customerid
select c;
これはすでにどこかのプロジェクトに存在する新しい「CustomerOrderが」型にすべての顧客と注文を選択します:これは新しい、匿名型に顧客IDと注文日付を選択することになる
from c in customers
join o in orders on o.customerid equals c.customerid
select new CustomerOrder { CustomerName = c.Name,
CustomerID = c.CustomerId,
OrderDate = o.OrderDate, ...... } ;
あなたが使用するために:
from c in customers
join o in orders on o.customerid equals c.customerid
select new { CustomerID = c.CustomerId, OrderDate = o.OrderDate } ;
それは強いタイプだ - と、この背後にある本格的な.NETのCLR型があります - あなただけの、その名前の:-)を知らないしかし、あなたはコード内でこれらの要素を使用することができ、あなたはIntellisenseを手に入れます。いくつかのデータの迅速な一時的操作。
マルク・
LINQからSQLへのMSDNの記事をチェックアウトが参加する: http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic12
Aは、LINQに参加内部結合です。
LINQでのグループ結合は、into句を持つ結合です。親情報は、子情報のグループに結合される。つまり、子情報はコレクションにまとめられ、子コレクションの親情報は1回だけ発生します。
LINQのjoinキーワードは、内部結合を行います。 select句に新しいオブジェクトを作成することで、結果を「プロジェクト」することができます。そのオブジェクトは型付きでも匿名でもかまいません。ここに例があります:
var ordersAndProducts = from o in orders
join p in products on o.ProductId equals p.ProductId
select new { OrderDate = o.OrderDate, ProductName = p.Name };
このクエリは、ProductIdプロパティの注文と製品コレクションを内部結合します。
LINQ to SQLを使用している場合(あなたのように見えます。アプリケーションをデバッグするか、データベースでプロファイラを実行することで、データベースに送信されるSELECT文を確認できます。
コード例では、 "="ではなく "equals"キーワードを使用する必要があります。 (代入演算子)、または "=="(等価演算子)さえあります。 –
おっと、ありがとう、ランス!!私はちょっとそれに慣れることができません..... –
例をありがとう。参加は少ないはずですが、私はこのシチュエーションに参加していましたが、参加することなくそれを行うことができたかもしれませんが、どうしたらいいのか分かりません。 PKとFKの関係。私はいくつかのwhere句に基づいて最初にPKテーブルをフィルタリングしたいと思います。私がPKテーブルから得たフィルタ結果に基づいて、FKテーブルからいくつかのフィールドを取得したいとします。私はしかし、データベースをマージして返す方法は不明でした。 – chobo2