EF 6 - Kiểu dữ liệu không gian
Kiểu dữ liệu không gian trong EF 6
MS SQL Server 2008 đã giới thiệu hai kiểu dữ liệu không gian geography
và geometry
. Kiểu dữ liệu geography
mô tả dữ liệu trong một vòng quanh trái đất hệ tọa độ và kiểu dữ liệu geometry
mô tả dữ liệu trong một hệ tọa độ Euclidean (phẳng).
Bắt đầu với phiên bản Entity Framework 5.0 đã bổ sung các kiểu dữ liệu đặc biệt trong namespace System.Data.Entity.Spatial
: DbGeography
cho kiểu dữ liệu geography
và DbGeometry
cho kiểu dữ liệu geometry
trong Máy chủ SQL.
Với mục đích demo, chúng tôi sẽ thêm cột Location
có kiểu dữ liệu geography
trong bảng Course
, như được hiển thị trong hình bên dưới:
Bây giờ, chúng ta sẽ cập nhật mô hình dữ liệu thực thể (EDM) sau khi thêm cột Location trong cơ sở dữ liệu. Sau khi cập nhật EDM, bạn có thể thấy rằng thuộc tính Location
của thực thể Course
có kiểu dữ liệu là System.Data.Spatial.DBGeography
, như được trình bày trong ví dụ bên dưới:
public partial class Course
{
public Course()
{
this.Students = new HashSet<Student>();
}
public int CourseId { get; set; }
public string CourseName { get; set; }
public Nullable<int> TeacherId { get; set; }
public System.Data.Spatial.DbGeography Location { get; set; }
public virtual Teacher Teacher { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
Bây giờ bạn có thể sử dụng thuộc tính Location
trong khi thêm hoặc cập nhật một thực thể Course
, như được trình bày trong ví dụ bên dưới.
using (var ctx = new SchoolDBEntities())
{
ctx.Courses.Add(new Course() {
CourseName = "New Course",
Location = DbGeography.FromText("POINT(-122.360 47.656)")
});
ctx.SaveChanges();
}
Truy cập MSDN để biết thêm thông tin về kiểu dữ liệu geography và kiểu dữ liệu geometry trong MS SQL Server.