筆記 - .NET 中的 Entity Framework

[筆記] .NET 中的 Entity Framework

基本概念

  • 又稱 ADO.NET Entity Framework

  • 微軟以 ADO.NET 為基礎所發展出來的物件關聯對應 ( ORM )

    • ORM 在我的筆記 GORM 介紹過
  • Entity Framework 利用了抽象化資料結構的方式

    • 每個資料庫物件都轉換成應用程式物件 ( entity )
    • 資料欄位都轉換為屬性 ( property )
    • 關聯則轉換為結合屬性 ( association )

      1
      2
      3
      4
      5
      6
      public partial class Account
      {
      public int Id { get; set; }
      public string Accountnum { get; set; }
      public string Password { get; set; }
      }
* 可以由資料庫來產生程式物件,也可以由程式物件來產生資料庫

建立物件關聯對應

由資料庫來產生程式物件

  • 連結資料庫

    • 檢視 > 伺服器總管 > 資料連結 ( 右鍵 ) > 加入連結
  • 加入 ADO.NET 實體模型

    • 專案 ( 右鍵 ) > 加入 > 新增項目 > Visual C# 項目 > Data > ADO.NET 實體資料模型
  • 資料庫更新後更新模型

    • .edmx 檔案畫面 ( 右鍵 ) > 從資料庫更新模型

使用 LINQ 對資料庫操作 ( LINQ To Entities )

  • 可以防範 SQL injection

與 SQL 語法類似

1
2
3
4
5
6
using (AccountDBEntities db = new AccountDBEntities())
{
var result = (from Account in db.Account
where Account.Accountnum == acct
select Account).FirstOrDefault();
}

使用 Lambda 表達式 ( 建議 )

1
2
3
4
5
6
using (AccountDBEntities db = new AccountDBEntities())
{
var result = db.Account
.Where(o => o.Accountnum == acct)
.FirstOrDefault();
}
tags: 筆記 .NET Entity Framework ORM
Author: Kenny Li
Link: https://kennyliblog.nctu.me/2020/12/19/Entity-Framwork-in-DotNet/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.