如果结果在选择新的linq中为<0

问题描述 投票:0回答:1

我有下一个问题,我有下一个代码

var creditos = from c in db.creditos 
  join s in db.solicitudDelCliente on c.SolicitudDelClienteID equals s.ID
  join cl in db.cliente on s.ClienteID equals cl.ID
  where c.Eliminado != true && cl.Eliminado != true && c.NegocioID == negocio_id
  select new
  {
      c.ID,
      cl.NumeroCliente,
      c.Consecutivo,
      NegocioID = negocio_id,
      cl.NombreCompleto,
      c.FechaAlta,
      c.CapitalPrestado,
      c.Vencido,
      c.Quebranto,
      c.Juridico,
      c.Liquidado,
      c.Reestructura,
      c.Eliminado,
      c.Estatus,
      CapitalPagado = db.movimientos.Where(mm=>mm.CreditoID == c.ID && mm.Eliminado != true && mm.DepositoMovimientoID != null && mm.CategoriaMovimientosID == 2).Select(mm=>mm.Monto).DefaultIfEmpty(0).Sum(),
      InteresesPagados = db.movimientos.Where(mm => mm.CreditoID == c.ID && mm.Eliminado != true && mm.DepositoMovimientoID != null && mm.CategoriaMovimientosID == 4).Select(mm => mm.Monto).DefaultIfEmpty(0).Sum(),
      SaldoInsoluto = db.movimientos.Where(mm => mm.CreditoID == c.ID && mm.CategoriaMovimientosID == 1).Select(mm => mm.Monto).DefaultIfEmpty(0).Sum() -
                    db.movimientos.Where(mm => mm.CreditoID == c.ID && mm.Eliminado != true && mm.DepositoMovimientoID != null && mm.CategoriaMovimientosID == 2).Select(mm => mm.Monto).DefaultIfEmpty(0).Sum(),
      SaldoDeudorTotal = (db.movimientos.Where(mm => mm.CreditoID == c.ID
           && mm.Eliminado != true 
           && mm.DepositoMovimientoID == null 
           && mm.CategoriaMovimientosID != 2)
        .Select(mm => mm.Monto).DefaultIfEmpty(0).Sum() 
          -  db.movimientos.Where(mm => mm.CreditoID == c.ID
             && mm.Eliminado != true 
             && mm.DepositoMovimientoID != null 
             && mm.CategoriaMovimientosID != 1)
        .Select(mm => mm.Monto).DefaultIfEmpty(0).Sum()), 
      Migrado = c.Migracion
  };

在查询的某些结果中,“ SaldoDeudorTotal”的值为负,我想控制该值,如果该值为-0,则返回0零。

c# linq-to-sql
1个回答
0
投票

您可以使用扩展名

public static int ToPositiveInt(this int value)
{
    if (value < 0)
        return 0;
    else
        return value
}

并在计算SaldoDeudorTotal的末尾调用它>

© www.soinside.com 2019 - 2024. All rights reserved.