Sono impegnato a implementare la nuova tecnologia Elastic Scale in un progetto al quale sto lavorando al momento. Questa tecnologia sembra risolvere alcuni problemi complessi che avevamo durante la progettazione della nuova base applicativa.Esecuzione di una query multi-shard a scala elastica sul contesto del database
Finora, gli esempi sembrano grandiosi e sono impegnato a implementarlo nel nostro DAL appena creato.
Per la nostra applicazione non possiamo fare affidamento esclusivamente su Elastic Scale in Azure. L'applicazione deve essere in grado di essere eseguita anche su una singola istanza, in locale. Quindi ho creato il seguente codice per interrogare il database che funziona abbastanza bene, anche con Elastic Scale.
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;
}
Il connectionInstance
è configurato tramite IoC che creerà un IDbConnection
che possiamo utilizzare nel OurDatabaseContext
. Tutto molto semplice.
Il problema principale che sto affrontando è un MultiShardConnection
fornito da Elastic Scale e implementato negli esempi.
Quindi la mia domanda è, è possibile utilizzare un MultiShardConnection
con un contesto di database (come quelli di LINQ2SQL (che stiamo utilizzando) o EF).
In caso negativo, è l'unica soluzione per utilizzare MultiShardConnection
in combinazione con MultiShardCommand
? O quando sarà disponibile una tale funzione?
Perché stai cercando di utilizzare MultiShardConnection in DbContext? Hai provato l'approccio descritto in questo articolo - http://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-use-entity-framework-applications-visual-studio/ –