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>
<add connectionstring="server=.; database=DemoWpfDbCodeFirst; integrated security=true;" name="SetupConnectionString" providername="System.Data.SqlClient">
</add></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

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 Enter
EF 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

Seed
Chú ý: Trường Id là khóa chính, ta không cần phải nhập. Nó sẽ tự động generate tự động, trong code trên Id = 1, Id = 2, Id = 3 được sử dụng để lớp Employee tham chiếu. Entityframework sẽ không tạo theo Id này.

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

thumbnail Entity Framework Code First: Create, Read, Update, Delete

data:label.name author

premiumpng.com

Design Publisher

Download 0
No comments
Template in .PSD format

MR Laboratory License

Free for personal purpose use . More info


Buy Now This Template

No comments:

Post a Comment

Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free

Newer Post Older Post Home

Copyright © 2021 MR Laboratory All rights reserved.

Setting