C# 在数据库上下文上执行弹性缩放多碎片查询
我现在正忙于在一个项目中实施新的弹性尺度技术。 这项技术似乎解决了我们在设计新的应用程序基础时遇到的一些复杂问题。 到目前为止,这些示例看起来很棒,我正忙于在新创建的DAL中实现这一点 对于我们的应用程序,我们不能仅仅依赖Azure中的弹性规模。应用程序也必须能够在单实例计算机上运行。 因此,我创建了下面的代码来查询数据库,它运行得非常好,并且具有弹性伸缩性C# 在数据库上下文上执行弹性缩放多碎片查询,c#,entity-framework,linq-to-sql,azure-sql-database,azure-elastic-scale,C#,Entity Framework,Linq To Sql,Azure Sql Database,Azure Elastic Scale,我现在正忙于在一个项目中实施新的弹性尺度技术。 这项技术似乎解决了我们在设计新的应用程序基础时遇到的一些复杂问题。 到目前为止,这些示例看起来很棒,我正忙于在新创建的DAL中实现这一点 对于我们的应用程序,我们不能仅仅依赖Azure中的弹性规模。应用程序也必须能够在单实例计算机上运行。 因此,我创建了下面的代码来查询数据库,它运行得非常好,并且具有弹性伸缩性 public IEnumerable<AnEntity> All() { var dbConnection = Get
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;
}
public IEnumerable All()
{
var dbConnection=GetConnection();
使用(var context=newourdatabasecontext(dbConnection))
{
var theEntities=context.EntityTable;
将实体返回到数组();
}
}
私有IDbConnection GetConnection()
{
var connectionInstance=connection[ConnectionStringNames.TheDatabase];
var dbConnection=connectionInstance.Create();
返回数据库连接;
}
connectionInstance
通过IoC配置,IoC将创建一个IDbConnection
,我们可以在OurDatabaseContext
中使用该连接。一切都非常简单
我面临的主要问题是如何实现一个由Elastic Scale提供并在示例中实现的多硬盘连接
所以我的问题是,是否可以将多硬盘连接
与数据库上下文(比如我们正在使用的LINQ2SQL或EF)一起使用
如果不是,那么将多硬盘连接
与多硬盘命令
结合使用是否是唯一的解决方案?或者这样的功能何时可用?正如我目前所知,没有简单的方法可以与dbContext建立多硬盘连接
使用MultiShardConnection+MultiShardCommand与示例相比有很大的局限性。但是,并非所有方法都可用(例如ReadAsync)
但是,我认为使用正确的切分键(映射键)可以绕过大多数多硬盘连接。我通过向ShardMapManager添加一个切分键解决了问题。
如果你想描述你需要多硬盘连接的具体原因,我会编辑我的帖子。
始终可以选择创建多个DbContext。为什么要在DbContext中使用多硬盘连接?您是否尝试过本文中描述的方法-