是否有任何轻量级ORM(如PetaPoco)支持同一项目中的多个数据库?
如果输入ORM并且可以生成所有实体,那将会很棒。
答案 0 :(得分:2)
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;
}
身份缓存将连接字符串作为身份的一部分。这意味着您可以获得所有查询的出色性能,因为缓存了materializer和param提取程序,但缓存是按db进行的。缓存对数据库架构更改也具有弹性。
Dapper与POCO和/或动态一起工作,您可以选择。 Dapper.Contrib包含一些可以使UPDATE
,INSERT
等等更简单的助手。
这里唯一需要注意的是它不会为你生成实体。你需要自己的代码才能做到这一点。
举一个基本的例子:
DbConnection db1 = ...
DbConnection db2 = ...
var dataFrom1 = db1.Query<Order>(sql, args);
var dataFrom2 = db2.Query<Order>(sql, args);
因为原点是连接,所以它自动以数据库为中心(请注意,它可以很好地处理数据库之间的不同列顺序等。)
或者换句话说:StackExchange是多租户,这意味着我们会在同一AppDomain
内与 lot 数据库进行对话。 StackExchange使用dapper,dapper完全设计用于处理这种情况。
Disclamer 我是dapper项目的贡献者,我想其他很多微ORM支持这个