最近有efcore跨库查询的需求,研究了下colder框架里文档的分库实现,发现并不能完全实现一个接口下的跨库查询请求,只能满足一个业务层构造指定的唯一一个数据库访问接口。
先说下文档是怎么实现的
DbAccessor实现使用多数据库
默认框架会自动注入IDbAccessor作为数据库访问接口,在需要的时候注入即可,若系统需要操作多个数据库,那么需要定义额外的接口继承IDbAccessor然后配置注入进去即可访问
先定义新的接口IMyDbAccessor
然后配置数据库类型和连接字符串
使用IMyDbAccessor
这样就可以在任何地方注入并使用IMyDbAccessor,更多数据库同理配置即可
--上面的缺陷在于BaseBussiness 中只能构造一个IMyDbAccessor,也就是说只能注入和使用一个数据库的数据访问接口。
DbFactory.Get