分库分表自动导航失效了吗? 返回

SqlSugar 沟通中
10 244

A库中X表按年分表,表中有个字段CreateUser

B库中Y表普通表,表中有个Account字段


X表的CreateUser关联了Y表中的Account字段

X表设置了一对一的导航属性UserCreate



A,B库都在同一台服务器上,且都是SQLserver数据库



参考文档image.png使用下面的查询代码


await _db.QueryableWithAttr<X>().SplitTable(input.BeginTime.Value, input.EndTime.Value).Includes(g => g.UserCreate).ToListAsync();


报错提示:找不到Y表


我看了生成的SQL语句,有个疑问,表名前面没有 A.dbo.X或者B.dbo.Y,这样的话的确是无法找到对应的库表吧?


热忱回答10

  • await _db.GetConnection("A").Queryable<X>().SplitTable(input.BeginTime.Value, input.EndTime.Value)
                                                        .CrossQuery(typeof(Y), "B")
                                                        .Includes(g => g.UserCreate).ToListAsync();


    这样写到是可以的

    0 回复
  • await _db.QueryableWithAttr<X>().SplitTable(input.BeginTime.Value, input.EndTime.Value)
                                                        .CrossQuery(typeof(Y), "B")
                                                        .Includes(g => g.UserCreate).ToListAsync();


    这样写也是可以的

    0 回复
  • await _db.QueryableWithAttr<X>().SplitTable(input.BeginTime.Value, input.EndTime.Value)
                                                        .CrossQuery(typeof(Y), "B")
                                                        .Select(g => new X()
                                                        {
                                                            CreateUserName = g.UserCreate.RealName
                                                        }).ToListAsync();


    但是这样写就不行了

    0 回复
  • fate sta fate sta VIP0
    1个月前

    跨库导航本来就有可能不支持select

    0 回复
  • fate sta fate sta VIP0
    1个月前

    跨库导航本来就有可能不支持select

    0 回复
  • fate sta fate sta VIP0
    1个月前

    文档写的很清楚了

    0 回复
  • @fate sta:没有吧,文档里没有说啊,参考的这个啊

    image.png

    0 回复
  • @fate sta


    文档是这里吧https://www.donet5.com/Home/Doc?typeId=2244

    0 回复
  • fate sta fate sta VIP0
    1个月前

    image.png

    0 回复
  • @fate sta:我这也不是子表过滤主表啊,意思就是导航属性用不了了,那完犊子了

    0 回复