gpt4 book ai didi

c# - 在数据库上下文中执行 Elastic Sc​​ale 多分片查询

转载 作者:太空狗 更新时间:2023-10-29 21:57:36 25 4
gpt4 key购买 nike

我正忙于在我正在进行的项目中实现新的 Elastic Sc​​ale 技术。这项技术似乎可以解决我们在设计新应用程序基础时遇到的一些复杂问题。

到目前为止,示例看起来很棒,我正忙于在我们新创建的 DAL 中实现它。

对于我们的应用程序,我们不能仅依赖 Azure 中的 Elastic Sc​​ale。该应用程序还必须能够在内部部署的单个实例机器上运行。因此,我创建了以下代码来查询运行良好的数据库,也适用于 Elastic Sc​​ale。

public IEnumerable<AnEntity> All()
{
var dbConnection = GetConnection();
using (var context = new OurDatabaseContext(dbConnection))
{
var theEntities = context.EntityTable;
return theEntities.ToArray();
}
}
private IDbConnection GetConnection()
{
var connectionInstance = connection[ConnectionStringNames.TheDatabase];
var dbConnection = connectionInstance.Create();
return dbConnection;
}

connectionInstance 通过 IoC 配置,它将创建一个 IDbConnection,我们可以在 OurDatabaseContext 中使用它。一切都非常简单。

我面临的主要问题是执行 MultiShardConnection,由 Elastic Sc​​ale 提供并在示例中实现。

所以我的问题是,是否可以将 MultiShardConnection 与数据库上下文(例如 LINQ2SQL(我们正在使用的)或 EF 的数据库上下文)一起使用。

如果不是,那么将 MultiShardConnectionMultiShardCommand 结合使用是唯一的解决方案吗?或者这种功能何时可用?

最佳答案

据我所知,没有简单的方法可以与 dbContext 建立多分片连接。

使用 MultiShardConnection + MultiShardCommand 与示例相比非常简单。但是,并非所有方法都可用(例如 ReadAsync)。

但是,我认为大多数多分片连接都可以通过使用正确的分片键(映射键)来绕过。我通过向 ShardMapManager 添加一个分片键解决了我的问题。如果您想描述您需要 MultiShard Connection 的具体原因,请编辑我的帖子。始终可以选择创建多个 dbContext。

关于c# - 在数据库上下文中执行 Elastic Sc​​ale 多分片查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com