Jestem zajęty wdrażaniem nowej technologii Elastic Scale w projekcie, nad którym obecnie pracuję. Ta technologia wydaje się rozwiązywać złożone problemy, które mieliśmy podczas projektowania nowej podstawy aplikacji.Wykonywanie kwerendy wielowątkowej Elastic Scale w kontekście bazy danych
Do tej pory przykłady wyglądają świetnie i jestem zajęty wdrażaniem tego w naszym nowo utworzonym DAL.
Do naszej aplikacji nie możemy polegać wyłącznie na Skali elastycznej na platformie Azure. Aplikacja musi być również uruchomiona na maszynie z pojedynczą instancją, także na poziomie lokalnym. Dlatego stworzyłem następujący kod do kwerendy do bazy danych, która działa całkiem dobrze, również ze skalą elastyczną.
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;
}
The connectionInstance
jest skonfigurowany poprzez IoC który będzie stworzyć IDbConnection
które możemy wykorzystać w OurDatabaseContext
. Wszystko dość proste.
Głównym problemem, przed którym stoję, jest wykonanie MultiShardConnection
dostarczonej przez Elastic Scale i zaimplementowanej w przykładach.
Moje pytanie brzmi: czy można użyć MultiShardConnection
z kontekstem bazy danych (np. LINQ2SQL (którego używamy) lub EF).
Jeśli nie, czy jedynym rozwiązaniem jest użycie MultiShardConnection
w połączeniu z MultiShardCommand
? Lub kiedy taka funkcja stanie się dostępna?
Dlaczego próbujesz użyć MultiShardConnection w DbContext? Czy próbowałeś podejścia opisanego w tym artykule - http://azure.microsoft.com/en-us/documentation/articles/sql-database-elastic-scale-use-entity-framework-applications-visual-studio/ –