'System.Collections.Generic.List<int>.Contains(int)' 有一些无效参数
'System.Collections.Generic.List<int>.Contains(int)' has some invalid arguments
实体框架查询显示错误,不知道为什么。如果我想获取主要 ID 的列表。
int PlantDemandId = 1;
var result = (from c in context.tbl_PlantSupply
where c.DemandId == PlantDemandId
select c.Id).ToList();
c.Id是主键
当我使用 c.DemandId 时,它工作正常。
当我使用 c.Id 时,它在以下查询中显示错误。
var result1 = (from c in context.tbl_NoOfPlantSupplied
join p in context.PlantationTypes on c.PlantationTypeId equals p.Id
join cl in context.Clones on c.CloneId equals cl.Id
where result.Contains(c.PlantSupplyId)
select new
{
PlantSupplyId = c.PlantSupplyId,
SourceOfSupplyId = c.SourceOfSupplyId,
PlantationTypeId = c.PlantSupplyId,
PlantationTypeName=p.Name,
CloneId = c.CloneId,
CloneName=cl.Name,
Supply = c.Supply
}).ToList();
where result.Contains(c.PlantSupplyId) : 这行显示错误
'System.Collections.Generic.List<int>.Contains(int)' has some invalid arguments
convert from int? to int
你不能比较int?和诠释。使用
c.PlantSupplyId.HasValue && result.Contains(c.PlantSupplyId.Value)
改为
PlantSupplyId 似乎有空值。请检查 tbl_NoOfPlantSupplied 是否有空值。我确定是的。这就是为什么错误要求您将可为空的 int(int?)转换为 int,因为您不能在 contains() 函数中传递 null。
如果 PlantSupplyId 列中有空值是可以的,那么您已经通过消除空值行在查询中处理了该问题。
实体框架查询显示错误,不知道为什么。如果我想获取主要 ID 的列表。
int PlantDemandId = 1;
var result = (from c in context.tbl_PlantSupply
where c.DemandId == PlantDemandId
select c.Id).ToList();
c.Id是主键
当我使用 c.DemandId 时,它工作正常。
当我使用 c.Id 时,它在以下查询中显示错误。
var result1 = (from c in context.tbl_NoOfPlantSupplied
join p in context.PlantationTypes on c.PlantationTypeId equals p.Id
join cl in context.Clones on c.CloneId equals cl.Id
where result.Contains(c.PlantSupplyId)
select new
{
PlantSupplyId = c.PlantSupplyId,
SourceOfSupplyId = c.SourceOfSupplyId,
PlantationTypeId = c.PlantSupplyId,
PlantationTypeName=p.Name,
CloneId = c.CloneId,
CloneName=cl.Name,
Supply = c.Supply
}).ToList();
where result.Contains(c.PlantSupplyId) : 这行显示错误
'System.Collections.Generic.List<int>.Contains(int)' has some invalid arguments
convert from int? to int
你不能比较int?和诠释。使用
c.PlantSupplyId.HasValue && result.Contains(c.PlantSupplyId.Value)
改为
PlantSupplyId 似乎有空值。请检查 tbl_NoOfPlantSupplied 是否有空值。我确定是的。这就是为什么错误要求您将可为空的 int(int?)转换为 int,因为您不能在 contains() 函数中传递 null。
如果 PlantSupplyId 列中有空值是可以的,那么您已经通过消除空值行在查询中处理了该问题。