これはあなたの質問から私ができることを外挿することによって簡単に推測されます。それは、あるいは正確でない場合があります:それは最小と最大の日付によってフィルタリング彼らの注文日、順Customerオブジェクトを返す必要があり
var dc = new MyDataContext();
var qry = from customer in dc.Customers
where customer.Orders.Description.Contains("special")
&& customer.Orders.OrderDate > myMinDate
&& customer.Orders.OrderDate < myMaxDate
order by customer.Orders.OrderDate ascending
select customer;
。これらの2行は、日付でフィルタリングしたくない場合は削除できます。
お客様には繰り返しを期待してください。非繰り返しが必要な場合は、group by節を追加します。
幸運にも、それがうまくいくかどうかを報告してください。 :)
編集:
おかげで、Randolpho、問題は、私はmyMinDateとmyMaxDateを持っていないということです。私は最も古い注文の説明を調べることができる必要があります。私はどこでもc.Orders.Where(x => x.OrderDate.Max())のようなものを使うべきだと思っていますが、クエリ全体を正しく構成することはできません。ありがとう。 - バレンティンワシリエフ
あなたが最も古い順としてから顧客をしたい場合は、説明を検査したいことや、あなたが最も古い順ものを顧客にしたい場合はうーん...私は言うことができません注文の説明に「特別な」という単語があります。
あなたが最も古い順に顧客をしたいし、その後の記述を確認したい場合は、あなたがこのような何か行う必要があります。このシナリオでは
var qry = from customer in dc.Customers
order by customer.Orders.OrderDate ascending
select new
{
CustomerData = customer,
OrderDescription = customer.Orders.Description
};
var oldest = qry.First();
if(oldest.OrderDescription.Contains("special"))
{
// do something
}
を、最も古い2つのフィールドを持つ新しい匿名型です、最も古い注文の顧客を含むCustomerDataと、最も古い注文の説明フィールドを含むOrderDescriptionとを含む。
一方、「特別」という語を含む最も古い注文が必要な場合があります。その場合、あなたはこのような何か行う必要があります。このシナリオでは
var qry = from customer in dc.Customers
where customer.Orders.Description.Contains("special")
order by customer.Orders.OrderDate ascending
select customer;
var oldestCustomerWithSpecial = qry.First();
を、説明に単語「特別な」が含まれ、最も古いレコードを持つ顧客がoldestCustomerWithSpecialという名前の変数です。
私はOrderDateでMaxを使用するとお手伝いをするとは思わない。ほとんどの場合、TOP 1のクエリで注文を使用する方がよいでしょう。クエリでFirst()を呼び出すとそれが実行されます。
これは、降順の代わりに昇順を並べる必要があります。 –
はい、それは軽微ですが、アルゴリズムは正しいですが、それはより重要です。 – Valentin
ええ、私はそれがマイナーなことを知っています - それが私がコメントして、それを投票した理由です:) –