Windows Phone với những điều bạn chưa biết về Local Database

Database có thể được xem là core của mọi ứng dụng, một ứng dụng từ Web đến Windows không thể thiếu database để lưu trữ và đối với Windows Phone cũng vậy. Windows Phone hổ trợ lưu trữ dữ liệu bằng nhiều cách như là XML, Binary ở phiên bản 7.0 đến phiên bản 7.1 trở về sau Windows Phone hổ trợ thêm một cách lưu trữ nữa mà các lập trình viên ưa thích đó là SQL CE (SQL Compact Editon) giúp việc lưu trữ dữ liệu trở nên dể dàng hơn. Tất cả những cách lưu trữ này đều là cách lưu trữ phía local của phone.

1.    Tổng quan về kiến trúc

Để lưu trữ dữ liệu phía local, một Windows Phone app cần dùng LINQ to SQL, LINQ to SQL cung cấp một giải pháp lập trình hướng đối tượng tương tác trực tiếp lên thực thể dữ liệu.

Các thao các trên LINQ to SQL được cung cấp thông qua   System.Data.Linq.DataContext , các thao tác thêm, sửa, xóa, cập nhật dữ liệu được cung cấp thông qua lớp Datacontext giúp chúng ta sử dụng rất dể dàng.

Lớp Datacontext trong ứng dụng Windows Phone có thể hiểu là lớp chưa kiến trúc dữ liệu, chứa những đối tượng Table của SQL

LINQ to SQL runtime là cầu nối giữa thế giới đối tượng thự thể và thế giới dữ liệu.

clip_image001[4]2.    Xây dựng kiến trúc dữ liệu cho ứng dụng Windows Phone

Để tạo Local Database, việc đầu tiên bạn phải làm là định nghĩa kiến trúc dữ liệu, bao gồm lớp kế thừa lớp Datacontext, lớp này sẽ chứa tập những đối tượng có quan hệ trong ứng dụng. Ngoài ra phải định nghĩa từng thực thể đổi tượng bảng (Table) để việc Datacontext mapping.

Chúng ta sẽ hiểu rõ hơn thông qua ví vụ sau :

clip_image003[4]

Một điều không thể thiếu là để sử dụng lớp Datacontext trên chúng ta phải khai báo những namespace sau :

clip_image005[4]

Chúng ta để ý ở code sample phía trên có thuộc tính có các thuộc tính trong dấu ngoặc vuông “[]” nhưng [Table][Coloumn] đó là những thuộc tính mapping. Nhờ các thuộc tính này là các đối tượng dữ liệu sẽ mapping tới đúng table trong local database. Tham khảo đầy đủ thông tin tại đây System.Data.Linq.Mapping

Sau đây là những thuộc tính cơ bản mà chúng ta cần phải biết, mình sẽ để nguyên văn từ msdn của Microsoft .

clip_image007[4]3.Tạo Local Database

Sau khi tạo Datacontext chúng ta sẽ rất dể dàng tạo local database chỉ bằng một vài dòng code mà lớp Datacontext hổ trợ.

clip_image009[4]

Hàm khởi tạo của Datacontext cần một tham số đầu vào là đường dẩn (ConnectionString) “isostrore:/DatabaseName.sdf”, đường dẩn này dẩn tới local folder trong ứng dụng, sau đó kiểm tra nếu Database chưa tồn tại thì gọi hàm CreateDatabase() đê tạo cơ sở dữ liệu.

4.Sử dụng Local Database

Để sử dụng local Database chúng ta phải sử dụng lệnh LINQ to SQL.

Sau đây là một số ví dụ đơn giản về cách sử dụng local database :

SELECTING DATA

clip_image017[4]INSERTING DATA

clip_image013[4]

Lưu ý là các thao tác thêm, sửa, xóa sẽ không được thực hiện dưới local database nếu không gọi hàm SubmitChanges()

UPDATING DATA

clip_image015[4]

Trong LINQ dữ liệu khi chúng ta query lên nó sẽ tồn tại trong bộ nhớ, khi đó mọi thao tác thay đổi dữ liệu chúng ta chỉ cần gọi hàm SubmitChanges() vậy là dữ liệu sẽ tự động cập nhật.

  DELETING DATA

clip_image017[4]

Với cú pháp LINQ khá đơn giản chúng ta sẽ rất dể dàng làm việc với Database.

Hy vọng bài viết này sẽ hữu ích với các bạn.