サーチ…


設定が必要です

  1. 必要なMicrosoft.SqlServer.TypesアセンブリをインストールしMicrosoft.SqlServer.Types 。デフォルトではインストールされていないため、Microsoftからは「Microsoft®SQLServer®2012のMicrosoft®System CLR Types」として利用できます。x86とx64のインストーラーが別々であることに注意してください。

  2. Dapper.EntityFramework (またはそれに相当する強力な名前)をインストールします。これは、IDEの「Manage NuGet Packages ...」UI、または(パッケージマネージャコンソールで)行うことができます。

    install-package Dapper.EntityFramework
    
  3. 必要なアセンブリバインディングのリダイレクトを追加します。これはMicrosoftがv11のアセンブリを出荷しているためですが、Entity Frameworkはv10を要求します。 <configuration>要素の下の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