支持同一项目中的多个数据库的小型ORM
本文关键字:数据库 小型 ORM 支持 项目 | 更新日期: 2023-09-27 18:08:34
在同一个项目中是否有支持多个数据库的轻量级orm(如PetaPoco) ?
如果ORM是键入的,并且可以生成所有实体,那就太好了。
Dapper支持这种开箱即用的方式。
public bool Equals(Identity other)
{
return
other != null &&
gridIndex == other.gridIndex &&
type == other.type &&
sql == other.sql &&
commandType == other.commandType &&
connectionString == other.connectionString &&
parametersType == other.parametersType;
}
标识缓存将连接字符串作为标识的一部分。这意味着您可以获得所有查询的出色性能,因为物化器和参数提取器是缓存的,但缓存是按数据库进行的。缓存还可以适应数据库模式的更改。
Dapper使用poco和/或动态,你可以选择。衣冠楚楚的。Contrib包含一些帮助程序,可以使UPDATE
, INSERT
等更简单。
这里唯一的警告是它不会为您生成实体。你需要自己的代码来完成。
给一个基本的例子:
DbConnection db1 = ...
DbConnection db2 = ...
var dataFrom1 = db1.Query<Order>(sql, args);
var dataFrom2 = db2.Query<Order>(sql, args);
因为原点是连接,所以这是自动以数据库为中心的(注意,它可以很好地处理数据库之间不同的列顺序等)。
或者换一种方式:StackExchange是多租户的,这意味着我们与同一AppDomain
内的数据库的lots对话。StackExchange使用dapper,而dapper完全是为处理这种情况而设计的。
免责声明我是dapper项目的贡献者,我想有很多其他的Micro orm支持这个