可以为Null字段,用做参数查询条件,生成SQL语句的问题。 返回
SqlSugar
老数据
3
2204
悬赏:100 飞吻
OrgamizeModel 类有很多可以为 Null 的字段;
TenantId 可以为空,将 TenantId 做参数传递;
如果 TenantId 是 Null ,生成的 SQL 语句是 TentantId = null,查询不到任何数据,正确应该是 TenantId is null 。
如果 TenantId 非 Null ,生成的 SQL 语句没问题。
因为实体类中有很多这样可以为 Null 的字段,如果每个都要去判断是否为 Null 很不爽,请问有更简单的方法吗?
//查询代码 var query = Db.Queryable<OrganizeModel>(); var query = query.Where(q => q.TenantId == tenantId); List<OrganizeModel> list = query.ToList();
//生成的SQL SELECT `Id`,`TenantId`,`ParentId`,`Layers`,`CategoryId`,`ManagerId`,`RegionId`,`SortCode`,`DeletedMark`,`EnabledMark`,`CreatedTime`,`CreatorUserId`,`ModifiedTime`,`ModifierUserId`,`DeletedTime`,`DeleterUserId` FROM `sys_organize` WHERE (( `TenantId` = null ))
[SugarTable("sys_organize")]
public class OrganizeModel
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
public long Id { get; set; }
[SqlSugar.SugarColumn(IsNullable = true)]
public long? TenantId { get; set; }
public long ParentId { get; set; }
public int? Layers { get; set; }
public int? CategoryId { get; set; }
public int? ManagerId { get; set; }
public int? RegionId { get; set; }
public int? SortCode { get; set; }
public bool? DeletedMark { get; set; }
public bool? EnabledMark { get; set; }
public DateTime? CreatedTime { get; set; }
public long? CreatorUserId { get; set; }
public DateTime? ModifiedTime { get; set; }
public long? ModifierUserId { get; set; }
public DateTime? DeletedTime { get; set; }
public long? DeleterUserId { get; set; }
}
热忱回答(3)
-
fate stay night VIP0
2019/7/17==null
0 回复 -
flyang VIP0
2019/7/17//现在是这样写的,等于Null是能查到数据的,但每次这样判断超级麻烦 var query = Db.Queryable<OrganizeModel>(); if (tenantId == null) { query = query.Where(q => SqlFunc.IsNullOrEmpty(q.TenantId)); } else { query = query.Where(q => q.TenantId == tenantId); }0 回复 -
dbd VIP0
2019/7/18p.B==false||p.B==null 试试
0 回复