2016-08-15 7 views
0

このクエリを変更して、Ienumerable Listではなく単一のオブジェクトを返すことは可能ですか? 私の場合、それは単一のオブジェクトまたはnullを保証します。linqで...を使用して単一オブジェクトを返しますか?

.First() 

さんは利用できないようですが、

var as= from s in entities.Subscriptions 
     join or in entities.OrderRates on s.OrderRateId equals or.OrderRateId 
     join oo in entities.OrderOfferings on or.OrderOfferingId equals oo.OrderOfferingId 
     join ov in entities.OrderVendors on oo.OrderVendorId equals ov.OrderVendorId 
     where s.CustomerId == customerId 
     select new 
     {...} 
+3

を使用しているクラス '(...)にその名前空間をインポートするためのステートメントを使用していることを確認してくださいSingleOrDefault();' – musefan

答えて

0

.First()ソースシーケンスが空の場合は例外がスローされます。したがって、あなたのwhere条件が項目をもたらさない場合は、例外が発生します。

whereの条件から単一のアイテムまたはヌル・イールドが確実に現れる場合は、SingleOrDefaultメソッドを使用できます。

var customer = (from s in entities.Subscriptions 
         join or in entities.OrderRates on s.OrderRateId equals or.OrderRateId 
         join oo in entities.OrderOfferings on or.OrderOfferingId equals oo.OrderOfferingId 
         join ov in entities.OrderVendors on oo.OrderVendorId equals ov.OrderVendorId 
         where s.CustomerId == customerId 
         select new 
         { //your mapping for new annonymous object goes here} 
       ).SingleOrDefault(); 

SingleOrDefault/FirstOrDefaultSystem.Linq名前空間に存在します。ですから、あなたがこの

using System.Linq; 
+0

THX!私はfromクエリのまわりで角括弧を使用しなかったので、私はresharperからの提案を受け取っていませんでした。 –

関連する問題