Sök…


Konfiguration krävs

  1. installera nödvändig montering av Microsoft.SqlServer.Types ; de är inte installerade som standard och är tillgängliga från Microsoft här som "Microsoft® System CLR-typer för Microsoft® SQL Server® 2012" - Observera att det finns separata installatörer för x86 och x64.

  2. installera Dapper.EntityFramework (eller den starkt namngivna motsvarigheten); detta kan göras via IDE: s "Hantera NuGet-paket ..." -gränssnittet, eller (på Package Manager-konsolen):

    install-package Dapper.EntityFramework
    
  3. lägg till nödvändiga monteringsbindande omdirigeringar; detta beror på att Microsoft skickar v11 av församlingarna, men Entity Framework frågar efter v10; kan du lägga till följande till app.config eller web.config under <configuration> -elementet:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.SqlServer.Types" 
              publicKeyToken="89845dcd8080cc91" />
          <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
  4. berätta "dapper" om de nya tillgängliga hanterarna av typen av typ genom att lägga till (någonstans i din start, innan den försöker använda databasen):

    Dapper.EntityFramework.Handlers.Register();
    

Med hjälp av geometri och geografi

När typhanterarna har registrerats bör allt fungera automatiskt, och du bör kunna använda dessa typer som antingen parametrar eller returnvärden:

string redmond = "POINT (122.1215 47.6740)";
DbGeography point = DbGeography.PointFromText(redmond,
    DbGeography.DefaultCoordinateSystemId);
DbGeography orig = point.Buffer(20); // create a circle around a point


var fromDb = connection.QuerySingle<DbGeography>(
  "declare @geos table(geo geography); insert @geos(geo) values(@val); select * from @geos",
  new { val = orig });

Console.WriteLine($"Original area: {orig.Area}");
Console.WriteLine($"From DB area: {fromDb.Area}");


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow