我想为 List 类编写一个扩展方法,就像 List 类的 Contains 方法一样,它采用一个null
能够对象。我的扩展方法是:
public static class CustomList
{
public static bool Contains<T>(this List<T> lst, Nullable<T> obj) where T : struct
{
bool bContains = false;
if (obj == null)
{
bContains = false;
}
else
{
T obj1 = (T)obj.Value;
bContains = lst.Contains(obj1);
}
return bContains;
}
}
我调用扩展方法的 LINQ 代码如下:
var lstJobActivity = (from objActivity in context.VW_JOB_ACTIVITY
where JobAssignId.Contains(objActivity.ASSIGN_ID) && objActivity.ACTIVITY_TYPE == "JBINTV"
select objActivity).ToList<VW_JOB_ACTIVITY>();
objActivity.ASSIGN_ID
在哪里null
。
显示的错误如下所示:
LINQ to Entities 无法识别方法 'Boolean Contains[Int64](System.Collections.Generic.List
1[System.Int64], System.Nullable
1[System.Int64])' 方法,并且此方法无法转换为存储表达式。