Ok, tiếp tục ta làm một ví dụ CRUD đơn giản với EF Code First.Ví dụ demo trên WPF and Visual Studio 2013.
Screencast:
Cơ sở dữ liệu như mẫu dưới đây.
Tạo mới project ứng dụng WPF, sau đó kéo các Control từ Toolbox thả vào Form. Ta cân chỉnh layout một chút cho nó cân đối:
Final:
Step 1: Tạo các thực thể
(Tương tự phần trước)Cài đặt Entity Framework
Mở Package Manager Console, nhập lệnh cài đặt
( Tools/NuGet Package Manager/Package Manager Console )
PM> Install-Package EntityFramework Enter
Departments Class
Employee Class
DbContext Class
Thêm chuỗi kết nối vào file App.Config
<connectionstrings>Kiểm tra tên database, nếu trùng database có sẵn rất có thể bạn sẽ được báo lỗi không kiểm tra được metadata
<add connectionstring="server=.; database=DemoWpfDbCodeFirst; integrated security=true;" name="SetupConnectionString" providername="System.Data.SqlClient">
</add></connectionstrings>
Nhập dữ liệu mẫu
Gõ lệnh trên PMC:
PM> get-help entityframework Enter
Bạn sẽ thấy được một số chức năng mà EF hỗ trợ. Để nhập dữ liệu mẫu ta sử dụng lệnh dưới đây để mở chức năng Migration:
PM> Enable-Migrations EnterEF sẽ tạo ra thư mục Migrations chưa lớp Configuration trong dự án của bạn như hình dưới đây:
Ngoài ra ta có thể sử dụng Migration để quản lý phiên bản thay đổi model, và có thể Rollback. (Ta sẽ không tìm hiểu điều này tại đây)
Trong lớp Configuration có phương thức Seed, đây là nơi ta nhập dữ liệu mẫu của mình như sau:
Tiếp theo ta cập nhật database bằng lệnh sau:
PM> Update-Database Enter
Step 2: Thiết kế lại Form và viết mã xử lý
Ta cần thêm các thuộc tính cho các Control trên form. Không giống như Winform, WPF sẽ sử dụng ngôn ngữ Xaml để thể hiện giao diện. XAML ánh xạ lên các lớp tương ứng trong .NET nên ta hoàn toàn có thể dùng code-behind để làm việc, tùy thuộc vào sự yêu thích của bạn.Sử dụng Font bên ngoài
Ta sử dụng font Awesome để làm Icon cho button, đây chỉ là ví dụ nên có thể không được đẹp. Đầu tiên bạn cần tải font này tại đây.
Tiếp theo tạo thư mục Fonts trong dự án của bạn và thêm file fontawesome-webfont.ttf vào thư mục này.
Để sử dụng trong Xaml, ta cần tạo tham chiếu tới Font này bằng cách thêm đoạn mã sau vào file App.xaml như sau:
OK, quay lại giao diện chính MainWindow.xaml ta cần sửa cụ thể như sau:
Final:
Trong MainWindow.cs mã xử lý ta viết như sau:
Chú thích
INotifyPropertyChanged: dùng để thông báo thay đổi tài nguyên cho client. Ở trong code trên ta có Departmentses, Employees, CurrentSelectedEmployee. Nhờ nó mà DataContext hoạt động hiệu quả hơn. Ta sẽ tìm hiểu kĩ hơn trong mô hình MVVM.Implement interface này:
#region INotifyPropertyChanged Implementing
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
DataContext: Trong WPF DataBinding là khái niệm rất cơ bản và quan trọng. Ta dùng Binding để đổ dữ liệu vào Control như DataGrid, ComboBox. Nhưng Binding cần có nguồn dữ liệu xác định. Và DataContext giúp xác định các nguồn dữ liệu này (Departmentses, Employees, CurrentSelectedEmployee).
Dùng mã sau nếu bạn đưa các nguồn dữ liệu sang class khác:
OtherClass o = new OtherClass();
DataContext = o;
ObservableCollection : Nó hữu ích khi cần đưa ra thông báo các hành động với dữ liệu. Trong ví dụ không đưa ra cụ thể dẫn chứng nào. Ta sẽ tìm hiểu cụ thể trong mô hình MVVM.
Created: 06/11/2014
Entity Framework Code First: Create, Read, Update, Delete
Related Tags :WritingObsolete
No comments:
Post a Comment
Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free