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