10 entity framework

Page 1

ThS. Nguyễn Nghiệm 0913.745.789 nghiemn@fpt.edu.vn songlong2k@gmail.com






 Bước 1: Đ/N Entity Class

Genre.cs, Artist.cs và Album.cs  Bước 2: Đ/N DbContext Class

MusicStore.cs  Bước 3: Cấu hình chuỗi kết nối

Web.config


@Html.EditorFor()

NOT NULL, LENGTH




Tạo DbContext Object MusicStoreDbContext db = new MusicStoreDbContext();

Truy vấn var genres = db.Genres;

Thêm mới db.Genres.Add(genre);

Cập nhật db.Entry(genre).State = EntityState.Modified;

Tìm kiếm var genre= db.Genres.Find(id);

Xóa db.Genres.Remove(genre);

Lưu sự thay đổi db.SaveChanges();


Tham chiếu CSDL

Các hành động thao tác CSDL

Giải phóng tham chiếu khi controller bị giải phóng


 Action của CrudController

Xem tất cả GET: Index() => hiển thị tất cả

Xem 1 thực thể GET: Details() => hiển thị chi tiết 1 thực thể

Thêm GET: Create() => hiển thị form nhập mới POST: Create(Entity model) => thêm vào CSDL

Sửa GET: Edit(int id) => hiển thị form chứa thực thể muốn sửa POST: Edit(Entity model) => cập nhật cSDL

Xóa GET: Delete(int id) => hiển thị chi tiết thực thể POST: DeleteConfirm(int id) => xóa thực thể












 Ánh xạ tự động

DbContext <=> Database Web.config: <add name=“tên dbcontext”…>

Entity Class <=> Table public DbSet<Album> Albums { get; set; }

Property <=> Column [Required] [StringLength(100)] public string Title { get; set; }

Id <=> Primary Key Tên: Id hoặc EntityId

Relationship Album: public virtual Genre Genre { get; set; } Genre: public virtual List<Album> Albums { get; set; }




ThS. Nguyễn Nghiệm 0913.745.789 nghiemn@fpt.edu.vn songlong2k@gmail.com


 Thay dổi Entity Class  Thay đổi Database  Làm việc với CSDL đã tồn tại


 Chỉ cần 1 sự thay đổi các thuộc tính của

EntityClass thì CSDL sẽ bị xóa đi và tạo lại


 Trong CSDL được sinh ra bởi mô

hình lập trình Code-First của EF có chứa 1 bảng có tên là _MigrationHistory được sử dụng để theo dõi phiên bản ánh xạ.  Xóa bảng này sẽ làm mất liên lạc về sự thay

đổi của EntityClass khi đó sẽ trở lại làm việc như CSDL đã tồn tại.


 Nếu CSDL của bạn đã có, thì bạn vẫn thực hiện

các bước như cũ Định nghĩa Entity Class Định nghĩa DbContext Class Khai báo Connection String  Ngoại trừ khai báo khởi đầu giá trị cho các bảng

trong CSDL tại Global.asax

Bỏ dòng mã lệnh này






DbContext Class

Entity Class


Tạo DbContext Object MusicStoreDbContext db = new MusicStoreDbContext();

Truy vấn var genres = db.Genres;

Thêm mới db.Genres.Add(genre);

Cập nhật db.Entry(genre).State = EntityState.Modified;

Tìm kiếm var genre= db.Genres.Find(id);

Xóa db.Genres.Remove(genre);

Lưu sự thay đổi db.SaveChanges();


 VS 2012 hỗ trợ việc sinh mã CRUD từ Entity Class  Bạn có thể sinh riêng lẻ từng trang hoặc sinh một

lúc cả 5 trang Index.cshtml: view liệt kê Details.cshtml: view xem chi tiết một thực thể Create.cshtml: view tạo mới Edit.cshtml: view sửa đổi Delete.cshtml: view xem trước khi xóa  Bạn có thể sửa đổi cho phù hợp mã HTML +

Razor tự sinh của các trang thành viên



 ArtistController gồm 5 Action

GET: Index() GET: Details() GET: Create() POST: Create(Artist model) GET: Edit(int id) POST: Edit(Artist model) GET: Delete(int id) POST: DeleteConfirm(int id)

Đoạn mã này xuất hiện trong cả Edit() và Delete() và có ý nghĩa: Nếu không tìm thấy artist trong db.Artists thì sẽ thông báo không tìm thấy


Form  @Html.ActionLink ("Edit", "Edit", new { id=item.Id })  @Html.DisplayNameFor (model => model.Name)  @Html.DisplayFor (modelItem => item.Name)  @Html.LabelFor (model => model.Name)

Validation  @Html.ValidationSummary (true)  @Html.ValidationMessageFor (model => model.Photo)  @Scripts.Render ("~/bundles/jqueryval")


Sinh View từ Model Class Chọn mẫu giao diện CRUD

Chọn Model Class

Chọn để sinh partial view

Chọn để sinh view áp dụng layout

Chú ý: View không sử dụng layout sẽ phải tự nhúng javascript và css riêng cho mình.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.