使用 linq 查询检查空条件时出现问题



我使用了联接并选择查询来传递特定实体的动态值,某些字段在数据库中为空。所以我检查条件!=null条件,但如果我使用该字段,整个选择语句都会抛出错误。

我的代码如下,

@placementId is as input value
IEnumerable<Submission> sub= from cc in confirmedCarrierRepository
    join cs in carrierSubmissionRepository on cc.ConfirmedCarrierID equals cs.ConfirmedCarrierID
    where cr.PlacementID == placementId
    //orderby c.panel is missed
    select new SubmissionEntity
    {
        PlacementId = placementId,
        //The ComissionId is null in db,
        CommissionId = cs.CommisionID.HasValue ? cs.CommisionID.ToString() : string.Empty
    }

另一种方式:

CommissionId= cs.CommisionID!=null ? cs.CommissionID : new int()

我不明白为什么。即使我检查空条件,整个选择也不起作用。请帮我找出答案。

如果你在IQueryable环境中工作(意味着你的linq必须生成数据库查询),那么ToString()是不允许的。

您可以使用 SqlFunctions.StringConvert

我不确定HasValue是否允许(您可以尝试),但肯定允许!= null

假设CommissionId是实体中的int?

"字符串"方式

CommissionId = cs.ComissionId != null ? SqlFunctions.StringConvert((double)cs.CommmissionId) : string.Empty

"int"方式

CommissionId= cs.CommisionID ?? 0 // or default(int), but not new(int)

使用 c# 合并运算符

 CommissionId = (cs.CommisionID ?? 0).ToString();

相关内容

  • 没有找到相关文章

最新更新