linq joinを理解するのに助けが必要です。私はこの問題に関連したいくつかの話題を見つけましたが、私はステップの良い説明を見つけませんでした。linqでエンティティフレームワークに参加する
私はこれを通常のクエリです。
var q = from c in context.tableA
select c;
List<tableA> tableAList = q.ToList();
q.ToList()は、クエリを実行します。この例から、私はそのクエリが1以上objetcを持つことができますが、これについて何が「新しいを選択する」を参照してくださいすることができますので、
hereは、いくつかの例を見つけましたが、私はこのことについて明確にしたい、
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<SalesOrderHeader> orders = context.SalesOrderHeaders;
ObjectSet<SalesOrderDetail> details = context.SalesOrderDetails;
var query =
from order in orders
join detail in details
on order.SalesOrderID equals detail.SalesOrderID
where order.OnlineOrderFlag == true
&& order.OrderDate.Month == 8
select new
{
SalesOrderID = order.SalesOrderID,
SalesOrderDetailID = detail.SalesOrderDetailID,
OrderDate = order.OrderDate,
ProductID = detail.ProductID
};
foreach (var order in query)
{
Console.WriteLine("{0}\t{1}\t{2:d}\t{3}",
order.SalesOrderID,
order.SalesOrderDetailID,
order.OrderDate,
order.ProductID);
}
}
? DBの各レコードに対して呼び出されますか?
そのオブジェクトはどのような種類ですか?クエリの最初のテーブルがあるので誰かが欲しい、または注文していますか?
オブジェクトが最初のテーブルの場合、このタイプで定義されていないデータが必要な場合、新しいattrを意味します。
他の質問、クエリはいつ実行されますか?
また、この方法は応答速度に適していますか、それともより良い解決策ですか?
thxです。この答えがあるスレッドがある場合、plzは私をよく指します。
私に言ったことは正しいです。今私は例に誤りを得る。 ONのステートメントでは、注文と詳細は等価で正しいのではなく、どこで正しいステートメントであると言われています。どんな手掛かり? –
エラー: "order"という名前が 'equals'の左側の領域にありません。 'equals'の両辺の式を変更します。 –
誰かが気にしていれば、その問題はここで重要です。私は、平等の左に詳細を入れて、右に行く必要があります。 –