SugarUnitOfWork 能用自定义仓储吗 返回

SqlSugar
10 156

工作单元中 仓储只能用SimpleClient吗?能用自定义仓储吗?

image.png

热忱回答10

  • 我按照例子写了一个demo,发现如果DbSet不继承SimpleClient类,运行时MyDbContext中的Orders为null,而继承SimpleClient类时Orders是正常的

    0 回复
  • image.png

    0 回复
  • 肯定要继承 SimpleClient类

    0 回复
  • 就是不想用simpleclient

    0 回复
  • @小糊涂仙:就像efcore一样,你不继承dbcontext一样不能用

    0 回复
  • 其实我认为完全可以不基于simpleclient

    1、建立一个DbSetAttribute类

    image.png

    2、修改CreateContext<T>方法

    image.png


    3、在MyDbContext中将Orders打上标签DbSetAttribute

    image.png


    4、这样DbSet<T>类就完全可以继承自定义的仓储,而不用继承simpleclient

    image.png

    image.png


    0 回复
  • DbSet本身就等于CustomRepository 只是名字随成了DbSet

    0 回复
  • 你只继承 SimpleClient才有 SimpleClient方法

    0 回复
  • image.png


    这个就仓储,你的自定义方法应该在这里面


    然后 Context.Order.自定义方法()

    0 回复
  • 感觉你目前这么写,对多库操作不太友好。。。比如同一个表在多个库中存在,在一个项目中需要读取多个库数据的时候...

    相比之下我基本去扩展 ISimpleClient<T> 中的方法了。

    不过我基本采用注入的方式来实现的,和你实现模式不太一样

    image.png


    例如这么干::

    image.png

    0 回复