Trang Designer – Thiết kế website – Mua bán theme giá rẻ, plugin giá rẻ – Dịch vụ thiết kế website giá rẻ chuyên nghiệp chuẩn SEO – Mua bán theme giá rẻ, plugin giá rẻ chính hãng 100% từ nhà cung cấp, hỗ trợ update trọn đời

Tìm hiểu Entity Framework trong ASP.NET, cách cài đặt EF 6 và EF Core, hướng dẫn CRUD, tối ưu truy vấn LINQ và cách sử dụng trong ASP.NET MVC/Web API.
Tìm hiểu về Entity Framework trong ASP.NET
Tìm hiểu về Entity Framework trong ASP.NET

Giới thiệu về Entity Framework (EF)

Entity Framework (EF) là một ORM (Object-Relational Mapper) được Microsoft phát triển, giúp lập trình viên làm việc với cơ sở dữ liệu dễ dàng hơn bằng cách sử dụng các đối tượng trong C# thay vì viết truy vấn SQL thủ công.

Lợi ích của Entity Framework

  • Giảm thời gian phát triển: Không cần viết nhiều câu lệnh SQL thủ công.
  • Hỗ trợ nhiều loại cơ sở dữ liệu: SQL Server, MySQL, PostgreSQL, SQLite,…
  • Dễ dàng bảo trì & mở rộng: Sử dụng mô hình Code First giúp quản lý database dễ dàng hơn.
  • Tích hợp tốt với ASP.NET: Dễ dàng sử dụng với Web Forms, MVC, API.

Các phiên bản của Entity Framework

Phiên bảnĐặc điểm chính
EF 6Phiên bản ổn định, hỗ trợ nhiều tính năng nhưng chỉ chạy trên .NET Framework.
EF CorePhiên bản mới, hiệu suất cao, hỗ trợ .NET Core và đa nền tảng.

👉 EF 6 dành cho ứng dụng ASP.NET Framework
👉 EF Core dành cho ứng dụng ASP.NET Core

Cài đặt Entity Framework trong ASP.NET

Cài đặt Entity Framework 6 trong ASP.NET Framework

Nếu bạn đang sử dụng ASP.NET MVC hoặc Web Forms trên .NET Framework, có thể cài đặt EF 6 thông qua NuGet Package Manager:

Install-Package EntityFramework

Thêm vào Web.config chuỗi kết nối:

<connectionStrings>
    <add name="MyDbContext" 
         connectionString="Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True" 
         providerName="System.Data.SqlClient"/>
</connectionStrings>

Cài đặt Entity Framework Core trong ASP.NET Core

Nếu bạn sử dụng ASP.NET Core, hãy cài đặt EF Core bằng lệnh sau:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools

Thêm cấu hình DbContext trong Program.cs:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<MyDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

Thêm chuỗi kết nối vào appsettings.json:

"ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MyDatabase;Trusted_Connection=True;"
}

Các phương pháp tiếp cận trong Entity Framework

Entity Framework có 3 cách tiếp cận chính:

Database First

  • Dành cho dự án có sẵn database.
  • EF tự động tạo Model từ Database.
  • Sử dụng Entity Data Model (.edmx).

Cách sử dụng:

  1. Chuột phải vào dự án ASP.NET MVC/Web Forms.
  2. Chọn Add > New Item > ADO.NET Entity Data Model.
  3. Chọn EF Designer from Database.
  4. Kết nối đến Database và hoàn tất quá trình.

Code First

  • Dành cho dự án chưa có database.
  • Tạo class C# trước, rồi dùng Migration để tạo bảng.

Ví dụ:
Tạo model Product:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

Tạo lớp DbContext:

using System.Data.Entity;

public class MyDbContext : DbContext
{
    public MyDbContext() : base("MyDbContext") { }

    public DbSet<Product> Products { get; set; }
}

Chạy lệnh để tạo database:

Enable-Migrations
Add-Migration InitialCreate
Update-Database

Model First

  • Dành cho dự án chưa có database nhưng muốn thiết kế bằng Entity Data Model (EDM).
  • EF tự động tạo database từ mô hình đồ họa.

Cách sử dụng:

  1. Chuột phải vào dự án ASP.NET MVC/Web Forms.
  2. Chọn Add > New Item > ADO.NET Entity Data Model.
  3. Chọn Empty Model và thiết kế bằng công cụ đồ họa.

CRUD với Entity Framework trong ASP.NET

Thêm dữ liệu vào database (Create)

using (var context = new MyDbContext())
{
    var product = new Product { Name = "Laptop", Price = 1000 };
    context.Products.Add(product);
    context.SaveChanges();
}

Lấy dữ liệu từ database (Read)

var products = context.Products.ToList();

Cập nhật dữ liệu (Update)

var product = context.Products.Find(1);
if (product != null)
{
    product.Price = 900;
    context.SaveChanges();
}

Xóa dữ liệu (Delete)

var product = context.Products.Find(1);
if (product != null)
{
    context.Products.Remove(product);
    context.SaveChanges();
}

Sử dụng Entity Framework trong ASP.NET MVC Controller

Tạo ProductsController:

public class ProductsController : Controller
{
    private readonly MyDbContext _context = new MyDbContext();

    public ActionResult Index()
    {
        var products = _context.Products.ToList();
        return View(products);
    }

    public ActionResult Create(Product product)
    {
        _context.Products.Add(product);
        _context.SaveChanges();
        return RedirectToAction("Index");
    }
}

Lưu ý khi sử dụng Entity Framework

Tối ưu hiệu suất bằng AsNoTracking():

var products = _context.Products.AsNoTracking().ToList();

Tránh lỗi “N+1 Query Problem” bằng Include():

var orders = _context.Orders.Include(o => o.Customer).ToList();

Sử dụng FromSqlRaw() khi cần hiệu suất cao:

var products = _context.Products.FromSqlRaw("SELECT * FROM Products").ToList();

Kết luận

Entity Framework giúp lập trình viên ASP.NET làm việc với database một cách dễ dàng, giảm thiểu việc viết SQL thủ công. EF 6 phù hợp với ASP.NET Framework, còn EF Core là lựa chọn tốt cho ASP.NET Core.

Tóm tắt nhanh:

  • Hỗ trợ Database First, Code First, Model First
  • CRUD đơn giản, tích hợp tốt với ASP.NET MVC, Web API
  • Tối ưu hiệu suất với AsNoTracking(), Include()

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

pzf-icon