Ich bin gerade dabei, die neue Elastic Scale-Technologie in einem Projekt zu implementieren, an dem ich gerade arbeite. Diese Technologie scheint einige komplexe Probleme zu lösen, die wir bei der Entwicklung der neuen Anwendungsgrundlage hatten.Ausführen einer Elastic Scale-Multi-Shard-Abfrage im Datenbankkontext
Bisher sehen die Beispiele gut aus und ich bin damit beschäftigt, dies in unserem neu erstellten DAL zu implementieren.
Für unsere Anwendung können wir uns nicht ausschließlich auf Elastic Scale in Azure verlassen. Die Anwendung muss in der Lage sein, auf einem einzelnen Instance-Rechner auch lokal ausgeführt zu werden. Daher habe ich den folgenden Code erstellt, um die Datenbank abzufragen, die ziemlich gut funktioniert, auch mit 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;
}
Die connectionInstance
über IoC konfiguriert, die eine IDbConnection
schaffen, die wir im OurDatabaseContext
verwenden können. Alles ziemlich einfach.
Das Hauptproblem, mit dem ich konfrontiert bin, ist ein MultiShardConnection
, von Elastic Scale zur Verfügung gestellt und in den Beispielen implementiert.
Also meine Frage ist, ist es möglich, eine MultiShardConnection
mit einem Datenbankkontext (wie die von LINQ2SQL (die wir verwenden) oder EF) zu verwenden.
Wenn nicht, ist die einzige Lösung, die MultiShardConnection
in Kombination mit der MultiShardCommand
zu verwenden? Oder wann wird eine solche Funktion verfügbar sein?
Warum versuchen Sie, MultiShardConnection im DbContext zu verwenden? Haben Sie den in diesem Artikel beschriebenen Ansatz versucht - http://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-use-entity-framework-applications-visual-studio/ –