sql >> データベース >  >> RDS >> Sqlserver

FluentNHibernateの地理空間ポイントマッピング

    地域を使用しています 方言ですが、ジオメトリのCustomTypeを使用しています あなたのマッピングに。カスタムタイプの地理を使用する必要があります 。次のようなもの:

    public class PlaceMap : ClassMap<Place>
    {
        public PlaceMap()
        {
            Id(x => x.Id);
            Map(x => x.Name);
    
            Map(x => x.Location).CustomType(typeof(MsSql2008GeographyType)); //for SQL2008
        }
    }
    

    また、あなたがしなければならないかもしれない何か他のものがあります。空間列のSRIDが0(ゼロ)とは異なり、NH xmlマッピングをスキップする場合は、次のようなカスタムタイプを宣言する必要があります。

    public class Wgs84GeographyType : MsSql2008GeographyType
    {
        protected override void SetDefaultSRID(GeoAPI.Geometries.IGeometry geometry)
        {
            geometry.SRID = 4326;
        }
    }
    

    そして、それをマッピングで使用します:

    public class PlaceMap : ClassMap<Place>
    {
        public PlaceMap()
        {
            Id(x => x.Id);
            Map(x => x.Name);
    
            Map(x => x.Location).CustomType(typeof(Wgs84GeographyType));
        }
    }
    

    更新:

    NHibernate.Spatial.MsSql2008.dllを参照する必要があります。データベース構成では、強く型付けされた方言メソッドを使用することをお勧めします。

    .Dialect<MsSql2008GeographyDialect>()
    



    1. postgresjsonb_set複数のキーの更新

    2. 複数の列が選択されている場合、script(while-loop)は停止し、出力がありません

    3. トランザクションレプリケーションを作成する方法

    4. datepicker日付をmysql日付に変換します