int? item1 = null;
int? item2 = null;
someObjectList.Where(x => x.SomeItem1 == (item1 ?? x.SomeItem1)
&& x.SomeItem2 == (item2 ?? x.SomeItem2)
);
哪裏someObjectList
是不是空的,SomeItem1
和SomeItem2
是在列表中的所有對象null
。
它爲什麼沒有返回?
編輯:
我的代碼:
public void GetPlacementsByMaterial(long clientMaterialID)
{
ClientMaterial clientMaterial = ((ApplicationEntityModel)NavigationItem.ObjectContext).ClientMaterial.FirstOrDefault(x => x.ClientMaterialID == clientMaterialID);
var list = GetPlacementList(supplier, mediaSpace);
PlacementsList = list.Where(x => x.MediaCategoryFormatID == (clientMaterial.MediaCategoryFormatID ?? x.MediaCategoryFormatID)
&& x.MediaCategorySizeID == (clientMaterial.MediaCategorySizeID ?? x.MediaCategorySizeID)
);
}
所有ID是Nullable<long>
。
編輯:
SQL事件探查器:
SELECT *
FROM [dbo].[CampaignSchedulePlacements] AS [Extent5]
WHERE ([Extent5].[MediaCategoryFormatID] = [Extent5].[MediaCategoryFormatID]) AND ([Extent5].[MediaCategorySizeID] = [Extent5].[MediaCategorySizeID])
注:清理`SQL。
請發表一個完整的例子,重現問題。 – CodesInChaos 2012-07-21 17:21:16
它適合我。 SomeItem1是什麼類型的?它是否有一個重載的'=='運算符? – Ryan 2012-07-21 17:22:01
@CodesInChaos看我的更新。 – Willem 2012-07-21 17:27:32