这个错误是偶发性吗? 返回

做数据权限时需要用到这个部分代码:
Expressionable<MenuInfo> exp = new Expressionable<MenuInfo>();
exp.And(a => a.isDel == 1);
exp.And(a => SqlFunc.Subqueryable<DepartmentUserInfo>().LeftJoin<DepartmentInfo>((ab, ab1) => ab1.Id == ab.DepartmentId).LeftJoin<DataPermissionInfo>((ab, ab1, ab2) => ab2.RoleCode == ab1.DepartmentId).LeftJoin<UserInfo>((ab, ab1, ab2, ab3) => ab3.RoleId == ab2.RoleId).Where((ab, ab1, ab2, ab3) => ab2.RoleType == 3 && ab3.Id == getUserId() && a.CreateUserId == ab.UserId).Any());
return DbContext.Instance.Queryable<MenuInfo>().Where(exp.ToExpression()).ToPageList(pageSize, pageCount, ref totalCount);
发现执行的时候 ab1.DepartmentId 没有替换为 ab1.department_id
热忱回答(6)
-
大微 VIP0
2022/11/24[SugarColumn(IsIgnore =true)]
public string DepartmentId{ get; set; }
这样行不
0 回复 -
大微 VIP0
2022/11/24[SugarColumn(ColumnName ="DepartmentId")]
public DateTime? _DepartmentId {get;set;}
[SugarColumn(IsIgnore =true)]
public string DepartmentId{ get; set; }
0 回复 -
菜鸟 VIP0
2022/11/24@大微:是可以的,
/// <summary>
/// 父部门ID(0代表的是公司)
/// </summary>
/// <value></value>
[SugarColumn(ColumnName = "DepartmentId", ColumnDescription = "父部门ID(0代表的是公司)", IsNullable = true, ColumnDataType = "Nvarchar(50)")]
public string DepartmentId { get; set; }
把表名中的字段和实例名定义一样,也是可以解决的
0 回复 -
大微 VIP0
2022/11/24@菜鸟:哦哦,我也遇到一个问题,如果导航插入的话,表没有主键,那应该怎么插入呢,我在论坛问没有人回我
0 回复 -
菜鸟 VIP0
2022/11/24@大微:虽然我没有这么做过,我只能提供一个思路
第一种:不需要主键 使用字典保存 比如
db.Insertable<Dictionary<
string
,
object
>>(
new
{ name=
""
,price=1 })
.AS(
"[Order]"
)
.ExecuteCommand();
第二种:建一个主键,只是数据,不起作用
0 回复 -
大微 VIP0
2022/11/24@菜鸟:第一种,导航插入不支持
,我加了个主键,感觉应该是可以的,但是不知道有啥方法哎
0 回复