Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

धाराप्रवाह NHibernate . में भू-स्थानिक बिंदु मानचित्रण

आप एक भूगोल . का उपयोग कर रहे हैं बोली लेकिन ज्यामिति . के कस्टम प्रकार का उपयोग कर रहे हैं आपके मानचित्रण पर। आपको कस्टम प्रकार के भूगोल . का उपयोग करना चाहिए . कुछ इस तरह:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सामान्य SQL सर्वर दुर्घटनाएँ

  2. MATLAB SQL सर्वर संचार करें

  3. कैसे एसक्यूएल सर्वर में group_concat के साथ एक क्वेरी बनाने के लिए?

  4. SQL सर्वर:क्या NEWID () हमेशा एक विशिष्ट आईडी देता है?

  5. Microsoft SQL सर्वर में केवल दिनांक का उपयोग करके DATETIME फ़ील्ड को कैसे क्वेरी करें?