2012-05-18 34 views
12

Tôi có một biểu mẫu mà từ đó người dùng sẽ có thể nhập vĩ độ và kinh độ của một điểm nhất định trên bản đồ. Dữ liệu sẽ được nhập dưới dạng giá trị chuỗi. Tôi đã thực hiện một số nghiên cứu và phát hiện ra từ nhiều nguồn khác nhau mà Khung thực thể không hỗ trợ các loại dữ liệu địa lý.Làm thế nào để đọc/ghi dữ liệu địa lý bằng cách sử dụng C#, Entity Framework và SQL Server 2008?

  • Làm cách nào để phân tích và/hoặc lưu dữ liệu chuỗi vào cột địa lý trong cơ sở dữ liệu?
  • Tôi làm cách nào để truy cập và xóa nó dưới dạng chuỗi khi được lưu trữ?

Xin cảm ơn trước!

+0

Tham khảo liên kết này. http://stackoverflow.com/questions/23292268/what-is-c-sharp-equivalent-of-geography-sql-server-datatype-in-net-framework-4 –

Trả lời

18

Trong thực tế khung thực thể 5 thành phần được vận chuyển với .NET Framework 4.5 hỗ trợ các loại không gian. Hãy xem điều này walkthrough.

EDIT Với EF6 bạn có thể sử dụng các loại không gian trên cả .NET Framework 4 và .NET Framework 4.5

+0

Bài viết tuyệt vời. Cảm ơn bạn đã đề xuất điều này. –

+1

Vì vậy, vấn đề tôi thấy là tôi giữ POCOS của mình càng sạch càng tốt để loại bỏ tất cả các tham chiếu/phụ thuộc vào khung thực thể và lưu trữ lâu bền nhất có thể, sau đó có một tập hợp hoặc các lớp Kho lưu trữ biết về lưu trữ bền vững. Tôi cũng tránh xa các thuộc tính DataAnnotation sử dụng cấu hình thông thạo. Ngay sau khi bạn đặt DbGeography, bạn cần 'using System.Data.Entity' để phá vỡ phương pháp tiếp cận bất khả tri bền bỉ, ít nhất là đối với đối tượng Old C# "Plain". –

+0

.NET không có loại không gian bản địa để bạn có thể thực hiện điều này bằng cách nào khác? Bạn rõ ràng có thể hack một chút bằng cách không sử dụng các kiểu không gian EF nhưng 'byte []' cho các thuộc tính không gian trong các thực thể của bạn, nhưng sau đó bạn vẫn cần dịch bằng cách nào đó từ byte [] để làm cho nó có thể sử dụng được. – Pawel