2012-05-18 12 views
12

Mam formularz, z którego użytkownik będzie mógł wprowadzić szerokość i długość geograficzną określonego punktu na mapie. Dane będą wprowadzane jako wartości łańcuchowe. Zrobiłem kilka badań i dowiedziałem się z różnych źródeł, że Entity Framework nie obsługuje typów danych geograficznych.Jak odczytać/zapisać dane geograficzne przy użyciu C#, Entity Framework i SQL Server 2008?

  • Jak mogę analizować i/lub zapisywać dane ciągu w kolumnie geograficznej w bazie danych?
  • W jaki sposób mogę uzyskać do niego dostęp i przekształcić go jako ciąg po zapisaniu?

Z góry dziękuję!

+0

sprawdź ten link. http://stackoverflow.com/questions/23292268/what-is-c-sharp-equivalent-of-geography-sql-server-datatype-in-net-framework-4 –

Odpowiedz

18

W rzeczywistości komponenty Entity Framework 5 dostarczane z oprogramowaniem .NET Framework 4.5 obsługują typy przestrzenne. Spójrz na to walkthrough.

EDIT Z EF6 można użyć typów przestrzennych zarówno .NET Framework 4 i .NET Framework 4.5

+0

Świetny artykuł. Dziękuję za polecenie tego. –

+1

Problem polega na tym, że utrzymuję system POCOS tak czysty, jak to tylko możliwe, pomijając wszystkie odniesienia/zależności do struktury encji i magazynu trwałości, a następnie mając zestaw klasy lub repozytorium, które wiedzą o magazynie trwałości. Nie stosuję też atrybutów DataAnnotation przy użyciu płynnej konfiguracji. Jak tylko umieścisz DbGeography, potrzebujesz "używając System.Data.Entity", która przerywa podejście agnostyczne dla trwałości, przynajmniej dla "zwykłego" Starego C# obiektu. –

+0

.NET nie ma natywnego typu przestrzennego, więc jak inaczej mógłbyś to zrobić? Oczywiście możesz nieco zhakować, nie używając typów przestrzennych EF, ale "byte []" dla właściwości przestrzennych w twoich bytach, ale wtedy musisz jeszcze w jakiś sposób przetłumaczyć je na i z bajtu [], aby był użyteczny. – Pawel

Powiązane problemy