Tôi đang cố gắng sử dụng Nhibernate với loại Sql 2008 Geography và đang gặp khó khăn. Tôi đang sử dụng Fluiber Nhibernate để cấu hình mà tôi khá mới để có thể là vấn đề là tốt.NHibernate.Spatial và Sql 2008 Loại địa lý - Cách cấu hình
Thứ nhất, lớp tôi đang cố gắng để tồn tại trông giống như sau:
public class LocationLog : FluentNHibernate.Data.Entity
{
public virtual new int Id {get;set;}
public virtual DateTime TimeStamp {get;set;}
public virtual GisSharpBlog.NetTopologySuite.Geometries.Point Location {get;set;}
}
Lớp bản đồ trông giống như:
public class LocationLogMap : ClassMap<LocationLog>
{
ImportType<GisSharpBlog.NetTopologySuite.Geometries.Point>();
Id(x => x.Id);
Map(x => x.TimeStamp).Generated.Insert();
Map(x => x.Location);
}
Để sử dụng MsSql2008GeographyDialect với thành thạo NHibernate, tôi đã tạo lớp cấu hình của riêng tôi:
public class Sql2008Configuration
: PersistenceConfiguration<Sql2008Configuration, MsSqlConnectionStringBuilder>
{
public Sql2008Configuration()
{
Driver<SqlClientDriver>();
}
public static Sql2008Configuration MsSql2008
{
get { return new Sql2008Configuration().Dialect<MsSql2008GeographyDialect>(); }
}
}
vì vậy tôi có mã cấu hình như:
var configuration = Fluently.Configure()
.Database(Sql2008Configuration.MsSql2008.ConnectionString(c => c.Is(connectionString)))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf<LocationLog>()
);
Tất cả điều này để thiết lập một thực tế rằng tôi nhận được lỗi sau khi cố gắng kiên trì loại LocationLog cơ sở dữ liệu:
Một .NET Framework lỗi xảy ra trong quá trình thực hiện user- định nghĩa thường quy hoặc tổng hợp "địa lý": Hệ thống.ArgumentException: 24204: mã định danh tham chiếu không gian (SRID) là không hợp lệ. SRID được chỉ định phải khớp với một trong các SRID được hỗ trợ được hiển thị trong danh sách sys.spatial_reference_systems . System.ArgumentException: tại Microsoft.SqlServer.Types.SqlGeography.set_Srid (Int32 giá trị) tại Microsoft.SqlServer.Types.SqlGeography.Read (BinaryReader r) tại SqlGeography :: DeserializeValidate (IntPtr , Int32, CClrLobContext. *)
tôi đã đọc bài viết sau đây về cách cấu hình và sử dụng các thư viện Nhibernate không gian:
- http://nhibernate.info/doc/spatial/configuration-and-mapping.html
- http://nhibernate.info/doc/spatial/sample-usage.html
nhưng dường như không hữu ích. Bất kỳ ai có kinh nghiệm cấu hình Nhibernate để sử dụng các kiểu Địa lý không gian có thể cung cấp bất kỳ thông tin chi tiết nào sẽ được đánh giá cao.