を設定します。LINQは、私は次のように非常によく似たクエリを持って
var query = plans
.Where(p =>
p.IsOptOut ||
(p.PropertyType == PropertyType.Property1 && p.SomeCollection.Count > 0))
.Select(p =>
new CustomClass
{
Id = p.Id,
PropertyType = p.PropertyType,
IsOptOut = p.IsOptOut
});
だから我々はplans
からIsOptOut
が真であるOR p.PropertyType
が特定されるすべてのレコードを選択します値AND p.SomeCollection
には少なくとも1つのレコードがあります。
これは次のように設定することができ、結果に自分自身を貸すだろう:私はLINQクエリを変更するにはどうすればよい
Id PropertyType IsOptOut
1 Foo true
2 Foo false
3 Foo false
4 Bar true
5 Baz true
6 Baz false
ように節がplans
コレクション内の他のレコードに現在のレコードを比較することができWHEREとIsOptOutがtrueのレコードを除外し、指定されたプロパティタイプに対して返された唯一のレコードです。
上記の例では、IsOptOutがtrueで、 "Bar"のPropertyTypeの結果セットに他のレコードがないため、ID#4を結果セットから除外する必要があります。
副題として、IsOptOut
が真の場合、SomeCollection
にレコードが存在しないというビジネスルールです。
働いた、ありがとう! – Scott