第一話-Entity Framework概觀

  • EF為.NET平台支持的對象關聯映射技術,以實體數據模型搭配LINQ支持對象化的數據操作。
  • 相較SQL,結構化數據容易於應用程序整合,避免常見類型錯誤

對象關聯映射技術-ORM

  • ORM(Object Relational Mapping):將數據庫的數據表等內容映射到自動創建的數據模型類
  • 根據數據對象的設置,利用物件導向技術來處理關係數據庫
  • 針對連接數據庫產生需要的SQL語句來完成對應的數據處理操作,避免直接操作SQL語句
  • 提升數據存取的速度

Code First

一、創建Class

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

二、DbContext設置如下

    public class AppContext : DbContext
    {
        public AppContext(DbContextOptions<AppContext> options)
            : base(options)
        {
            
        }
        public virtual DbSet<Product> Product { get; set; }
    }

定義AppContext繼承自DbContext並繼承基類的構造函數傳入與數據庫的連線字符串。

三、輸出 創建連線數據庫相關的實例 調用Select()方法取出Product數據表內容並轉換成可列舉IEnumerable<Product>類型對象,透過循環將數據逐一取出。

AppContext db = new AppContext();
IEnumerable<Product> result = db.Product.Select(x=>x);
foreach (var p in result)
{
    Console.WriteLine = p.Id
}