Dapper.NETAan de slag met Dapper.NET


Opmerkingen

Wat is Dapper?

Dapper is een micro-ORM voor .Net dat uw IDbConnection , het instellen, uitvoeren en lezen van resultaten vereenvoudigt.

Hoe krijg ik het?

Gemeenschappelijke taken

versies

Versie Notes Publicatiedatum
1.50.0 core-clr / asp.net 5.0 gebouwd tegen RTM 2016/06/29
1.42.0 2015/05/06
1.40.0 2015/04/03
1.30.0 2014/08/14
1.20.0 2014/05/08
1.10.0 2012-06-27
1.0.0 2011-04-14

Installeer Dapper vanuit Nuget

Zoek in de Visual Studio GUI:

Hulpmiddelen> NuGet Pakketbeheer> Pakketten beheren voor oplossing ... (Visual Studio 2015)

screenshot van de Visual Studio-pakketbeheerinterface waarbij Dapper is geselecteerd

Of voer deze opdracht uit in een Nuget Power Shell-instantie om de nieuwste stabiele versie te installeren

Install-Package Dapper
 

Of voor een specifieke versie

Install-Package Dapper -Version 1.42.0
 

Dapper gebruiken in C #

using System.Data;
using System.Linq;
using Dapper;

class Program
{
    static void Main()
    {
        using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true"))
        {
            db.Open();
            var result = db.Query<string>("SELECT 'Hello World'").Single();
            Console.WriteLine(result);
        }
    }
}
 

Wikkelen van de verbinding in Using blok zal de verbinding te verbreken

Dapper gebruiken in LINQPad

LINQPad is geweldig voor het testen van databasequery's en bevat NuGet-integratie . Als u Dapper in LINQPad wilt gebruiken, drukt u op F4 om de Query-eigenschappen te openen en selecteert u NuGet toevoegen . Zoek naar dapper dot net en selecteer Toevoegen aan zoekopdracht. U wilt ook op Naamruimten toevoegen klikken en Dapper markeren om de extensiemethoden in uw LINQPad-query op te nemen.

Zodra Dapper is ingeschakeld, kunt u de vervolgkeuzelijst Taal wijzigen in C # Program , queryresultaten toewijzen aan C # -klassen en de methode .Dump () gebruiken om de resultaten te inspecteren:

void Main()
{
	using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true")){
		db.Open();
		var scalar = db.Query<string>("SELECT GETDATE()").SingleOrDefault();
		scalar.Dump("This is a string scalar result:");
		
		var results = db.Query<myobject>(@"
		SELECT * FROM (
		VALUES (1,'one'),
			(2,'two'),
			(3,'three')
		) AS mytable(id,name)");
		results.Dump("This is a table mapped to a class:");
	}
}

// Define other methods and classes here
class myobject {
	public int id { get; set; }
	public string name { get; set; }
}
 

De resultaten bij het uitvoeren van het programma zouden er als volgt uitzien:

LINQPad beeldschermafdruk