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 geographygeometry. 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 geographyDbGeometrycho 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:

Entity Framework 5.0 Tutorial

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 geographykiểu dữ liệu geometry trong MS SQL Server.