2013-03-18 16 views
9

Derzeit verwende ich OrmLite für DB-Operationen. Ich plane auch, Dapper ORM zu verwenden, aber kann mir jemand zeigen, wie man DapperORM in ServiceStack integriert. Muss ich IDbConnection und IDbConnectionFactory Schnittstellen mit Dapper und Plugin in den Container implementieren.Verwendung von Dapper in 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); 

     } 

Antwort

9

Dapper Werke wie OrmLite, dass sie beide Erweiterungsmethoden über die zugrunde liegenden ADO.NET System.Data.*IDbConnection Schnittstelle sind. Dies bedeutet, dass Sie beide zusammen auf der IDbConnection aus OrmLite IDbConnectionFactory verwendet verwenden können.

Eine .NET 4.0-Version von Dapper ist in den ServiceStack.Razor NuGet package unter dem ServiceStack.Razor.Dapper-Namespace eingebettet.

In v3.9.40 von ServiceStack wurden die APIs dieser eingebetteten Version von Dapper so geändert, dass sie ein Dapper-Suffix enthielten, um Konflikte mit OrmLite-Methoden mit demselben Namen zu vermeiden. Sie nicht müssen ein Request-Scoped IDbConnection als ServiceStack die Standard Service Klasse bereits abruft es aus der IDbConnectionFactory für Sie registrieren.

Da hier, wie Sie Dapper ORM APIs in einem ServiceStack Dienst zugreifen können:

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

Vielen Dank. Und wird es irgendwelche Probleme bezüglich der Rasierer-Bibliothek haben, ist meine Anwendung nur API mit Rest-Diensten. – Sunny

+0

Nein, es ist nur eine Bibliothek, die nichts bewirkt, wenn Sie das RazorFeature-Plugin nicht aktivieren. – mythz

+0

als v3.9.44 fehlt im ServiceStack.Razor NuGet-Paket, wo ist jetzt? –

5

Ich weiß nicht, über andere, aber aufgrund der Informationen in Bezug auf Dapper innerhalb des Namens Razor diese Antwort verwirrt mich ziemlich viel.

Wenn andere eine ähnliche Erfahrung haben, habe ich versucht, die gleiche Frage in einer basic way zu beantworten.