Ricerca…


Configurazione richiesta

  1. installare l'assembly Microsoft.SqlServer.Types richiesto; non sono installati per impostazione predefinita e sono disponibili da Microsoft qui come "Tipi di CLR del sistema Microsoft® per Microsoft® SQL Server® 2012". Si noti che esistono programmi di installazione separati per x86 e x64.

  2. installa Dapper.EntityFramework (o l'equivalente con il nome Dapper.EntityFramework ); questo potrebbe essere fatto tramite l'interfaccia utente "Gestisci pacchetti NuGet ..." dell'IDE o (nella Console di Gestione pacchetti):

    install-package Dapper.EntityFramework
    
  3. aggiungere i reindirizzamenti dell'associazione necessari; questo perché Microsoft spedisce v11 degli assembly, ma Entity Framework richiede v10; puoi aggiungere quanto segue ad app.config o web.config sotto l'elemento <configuration> :

    <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. dì "dapper" sui nuovi gestori di tipi disponibili, aggiungendo (da qualche parte nel tuo avvio, prima che provi ad usare il database):

    Dapper.EntityFramework.Handlers.Register();
    

Usando la geometria e la geografia

Una volta registrati i gestori di tipi, tutto dovrebbe funzionare automaticamente e dovresti essere in grado di utilizzare questi tipi come parametri o valori di ritorno:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow