2013-03-18 22 views
9

Obecnie używam OrmLite dla operacji DB. Planuję również używać Dapper ORM, ale czy ktoś może wskazać mi, jak zintegrować DapperORM w ServiceStack? Czy muszę zaimplementować oba interfejsy IDbConnection i IDbConnectionFactory z Dapper i plugin do kontenera.Jak używać Dapper w ServiceStack

public override void Configure(Container container) { 
     container.Register<IDbConnectionFactory>(
      c => new OrmLiteConnectionFactory(ConfigurationManager.ConnectionStrings["default"].ConnectionString, 
              SqlServerDialect.Provider)); 

     container.Register<IDbConnection>(c => c.Resolve<IDbConnectionFactory>().OpenDbConnection()).ReusedWithin(ReuseScope.Request); 

     } 

Odpowiedz

9

Dapper działa jak OrmLite że oboje metody rozszerzenie nad bazowy ADO.NET System.Data.*IDbConnection interfejs. Oznacza to, że można ich używać razem na urządzeniu IDbConnectionFactory firmy OrmLite.

Wersja Dapper .NET 4.0 jest osadzona w ServiceStack.Razor NuGet package pod obszarem nazw ServiceStack.Razor.Dapper.

W wersji 3.8.40 ServiceStack ta wbudowana wersja Dappera miała zmienione interfejsy API tak, aby zawierały sufiks "Dapper", aby uniknąć konfliktów z metodami OrmLite o tej samej nazwie. Musisz do not musisz zarejestrować IDbConnection o ustalonym zakresie wymagań jako domyślną klasę ServiceStack Service już pobiera ją z IDbConnectionFactory dla ciebie.

Biorąc pod uwagę, że oto w jaki sposób można uzyskać dostęp do API Wytworny ORM wewnątrz usługi ServiceStack:

public class MyService : Service 
{ 
    public object Any(Request request) 
    { 
     base.Db.QueryDapper(...); 
     base.Db.QueryMultipleDapper(...); 
     base.Db.MultiMapDapper(...); 
     base.Db.ExecuteDapper(...); 
    } 
} 
+0

Dziękuję. I czy będzie miał jakieś problemy dotyczące biblioteki maszynki do golenia, moja aplikacja to tylko API z usługami odpoczynku. – Sunny

+0

Nie, to tylko biblioteka, która nie robi niczego, jeśli nie włączasz wtyczki RazorFeature. – mythz

+0

jako v3.9.44 brakuje w pakiecie ServiceStack.Razor NuGet, gdzie jest teraz? –

5

nie wiem o innych, ale ze względu na informacje dotyczące Dapper obrębie nazw Razor ta odpowiedź mylić mnie trochę.

Jeśli inni mają podobne doświadczenia, spróbowałem odpowiedzieć na to samo pytanie w numerze basic way.