1️⃣ Microsoft.EntityFrameworkCore คืออะไร

By suparat · 08 Oct 2025


โอเค! 😎 เรามาเจาะลึก Microsoft.EntityFrameworkCore (EF Core) แบบเข้าใจง่าย ๆ กัน


1️⃣ Microsoft.EntityFrameworkCore คืออะไร

  • EF Core เป็น ORM (Object-Relational Mapper) ของ .NET

  • ช่วยให้เราทำงานกับ Database ผ่าน C# Class แทนการเขียน SQL โดยตรง

  • รองรับหลาย database เช่น SQL Server, MySQL, PostgreSQL, SQLite, InMemory

  • ช่วยเรื่อง:

    • CRUD (Create, Read, Update, Delete)

    • Query แบบ LINQ

    • Migrations (สร้าง/อัปเดต database schema)


2️⃣ การติดตั้ง

ใช้ NuGet Package:

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
  • Microsoft.EntityFrameworkCore.SqlServer → สำหรับ SQL Server

  • Microsoft.EntityFrameworkCore.Tools → ใช้สำหรับ CLI / Migration


3️⃣ สร้าง DbContext และ Entity

ตัวอย่าง:

using Microsoft.EntityFrameworkCore;

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

// DbContext
public class AppDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // SQL Server connection string
        optionsBuilder.UseSqlServer(@"Server=.;Database=MyDb;Trusted_Connection=True;");
    }
}

4️⃣ การใช้งาน CRUD

Create (เพิ่มข้อมูล)

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

Read (ดึงข้อมูล)

var products = context.Products.ToList();
var expensive = context.Products.FirstOrDefault(p => p.Price > 20000);

Update (แก้ไขข้อมูล)

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

Delete (ลบข้อมูล)

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

5️⃣ Migrations (สร้าง/อัปเดต Database)

  1. สร้าง Migration:

dotnet ef migrations add InitialCreate
  1. อัปเดต Database:

dotnet ef database update
  • Migration จะสร้าง ตารางตาม DbSet และ Entity อัตโนมัติ


6️⃣ LINQ Queries

// เลือกสินค้าแพงกว่า 20000
var result = context.Products
                    .Where(p => p.Price > 20000)
                    .OrderByDescending(p => p.Price)
                    .ToList();
  • EF Core จะแปลง LINQ เป็น SQL อัตโนมัติ


7️⃣ Tips การใช้งาน EF Core

  1. ใช้ Async Methods: SaveChangesAsync(), ToListAsync()

  2. ใช้ Dependency Injection สำหรับ DbContext ใน ASP.NET Core

services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
  1. ใช้ Navigation Properties สำหรับ Relationship: One-to-Many, Many-to-Many

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Product> Products { get; set; }
}

💡 สรุป:
Microsoft.EntityFrameworkCore ช่วยให้เราทำงานกับ Database แบบ OOP, ลดการเขียน SQL, ใช้ LINQ query, และรองรับ Migrations ทำให้พัฒนา Web API / Application ง่ายขึ้น


 

1️⃣ Microsoft.EntityFrameworkCore คืออะไร
Web hosting by Somee.com