Tải bản đầy đủ (.pptx) (22 trang)

mo hinh CSDL entityframework code first

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (809.74 KB, 22 trang )

Buổi 7

Mô hình CSDL Entity Framework
code first

Trần Minh Thái
1


Mục tiêu

1. Các thao tác cấu hình cho ứng
dụng dùng mô hình CSDL Entity
FrameWork code first
2. Tạo CSDL
3. Cài đặt SqlServer Compact
4. Một số thao tác cơ bản trên
CSDL
2

2


Tạo CSDL



Mục tiêu
• Tìm hiểu về việc xây dựng CSDL
• Có thể dùng CSDL SQL Server, SQL Compact
• SQL Compact có thể được triển khai như 1 phần của


project mà không yêu cầu máy client phải cài đặt SQL
Server
• Việc truy vấn LINQ với mô hình Entity Framework (EF)
hay LINQ to SQL để thay thế ADO.Net giúp xây dựng
các ứng dụng CSDL cũng trở nên đơn giản và thống nhất
hơn
5


C1. Cấu hình EF và SQL Compact
Add references
•EntityFramework.dll
•System.Data.Entity.dll
•System.ComponentModel.DataAnnotations.dll
(Các Attribute định nghĩa CSDL)

6


C1. Cấu hình EF và SQL Compact
• EntityFramework được tích hợp sẵn khi cài Visual Studio
“C:\Program Files\Microsoft Visual
Studio\2017\Community\Common7\IDE”

7


C1. Cấu hình EF và SQL Compact
• EntityFramework được tích hợp sẵn khi cài Visual Studio
“C:\Program Files\Microsoft Visual

Studio\2017\Community\Common7\IDE”

8


C1. Cấu hình EF và SQL Compact
• System.Data.Entity.dll là thư viện hệ thống (System)
trong Assemblies của hệ thống

9


C1. Cấu hình EF và SQL Compact
• System.ComponentModel.DataAnnotations.dll
“C:\Program Files\Reference
Assemblies\Microsoft\Framework\.NETFramework\v4.5.2”

10


C2. Cấu hình EF và SQL Compact
Cài đặt bằng Nuget
• Vào menu Tool\NuGet Package Manager\Package
Manager Console
• Install-Package EntityFramework
Visual Studio tự động download gói EF trong thư mục
Packages, và tự động add các thư viện dll vào dự án

11



Cấu hình
EF và
SQL
Compact
Sau khi add
reference thành
công

12


Khai báo Model và dữ
liệu mặc định


B1. Tạo lớp Model định nghĩa bảng DL
Tạo thư mục Model, và định nghĩa các Lớp tương ứng (các
bảng DL)
VD: Định nghĩa lớp Category chứa 2 thành phần dữ liệu
(ID: Mã loại, Name: Tên loại)

namespace EntityFrameWorkExample.View
{
public class Category
{
public int ID { get; set; }
public string Name { get; set; }
}
}


14


B2. Định nghĩa mô hình CSDL
• Tạo Lớp kế thừa DbDataContext để định nghĩa mô hình
CSDL dùng Entity Framework
• VD: Tạo lớp MyEntity
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
namespace EntityFrameWorkExample.View
{
public class MyEntity: DbContext
{
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(DbModelBuilder
modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

15


B3. Tạo dữ liệu khởi tạo ban đầu
• Tạo Lớp dữ liệu ban đầu cho ứng dụng bằng cách hiện
thực IDatabaseInitializer<TContext>
• Cho phép xóa, tạo lại và c ung cấp lại dữ liệu cho CSDL
khi CSDL được tạo
• Để cung cấp giá trị cho CSDL, tạo một lớp dẫn xuất và

override phương thức Seed

16


VD: Tạo lớp DefaultData chứa DL ban đầu cho bảng Category

namespace EntityFrameWorkExample.View
{
public class DefaultData :
DropCreateDatabaseIfModelChanges<MyEntity>
{
protected override void Seed(MyEntity context)
{
new List<Category>
{
new Category { ID = 1, Name = "Category
new Category { ID = 2, Name = "Category
new Category { ID = 3, Name = "Category
new Category { ID = 4, Name = "Category
new Category { ID = 5, Name = "Category
}.ForEach(m => context.Categories.Add(m));
}
}
}

1"
2"
3"
4"

5"

},
},
},
},
}

17


B4. Đăng ký dữ liệu mặc định
using System.Windows;
using System.Data.Entity;
using EntityFrameWorkExample.View;
namespace EntityFrameWorkExample
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void
OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Database.SetInitializer(new DefaultData());
}
}
}


18


Cài đặt Sql Server Compact cho EF

19


Cài đặt Sql Server Compact cho EF

Sau khi cài đặt xong, kiểm tra cài đặt trong file App.config của Project ứng dụng

20


Các thao tác cơ bản
var db = new MyEntity();
Giả sử có đối tượng category thuộc lớp Category
1. Thêm mới dữ liệu:
db.Categories.Add(category);
2. Xóa dữ liệu:
db.Categories.Remove(category);
3. Sửa dữ liệu: db.Entry(category).State =
EntityState.Modified;
Các thao tác trên chỉ thay đổi trên bộ nhớ Entity  gọi
db.SaveChanges() để lưu xuống CSDL
21



Q&A

22 22



×