Поиск…


Требуется конфигурация

  1. установите требуемую сборку Microsoft.SqlServer.Types ; они не установлены по умолчанию и доступны от Microsoft здесь как «Типы среды Microsoft® для CLR для Microsoft® SQL Server® 2012» - обратите внимание, что для x86 и x64 существуют отдельные установщики.

  2. установить Dapper.EntityFramework (или эквивалент сильного имени); это можно сделать с помощью интерфейса IDE «Управление пакетами NuGet ...» или (в консоли диспетчера пакетов):

    install-package Dapper.EntityFramework
    
  3. добавить необходимые переадресации привязки сборки; это потому, что Microsoft отправляет v11 сборок, но Entity Framework запрашивает v10; вы можете добавить следующее в app.config или web.config в элементе <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. скажите «dapper» о доступных доступных обработчиках типов, добавив (где-то в вашем запуске, прежде чем он пытается использовать базу данных):

    Dapper.EntityFramework.Handlers.Register();
    

Использование геометрии и географии

Когда регистрируются типы обработчиков, все должно работать автоматически, и вы должны иметь возможность использовать эти типы в качестве параметров или возвращаемых значений:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow