實體框架連線

實體框架公開了抽象類,這些抽象類用於以 DbContext 等類的形式與底層資料庫互動。這些上下文通常由 DbSet<T> 屬性組成,這些屬性公開可以查詢的可用集合:

public class ExampleContext: DbContext 
{ 
    public virtual DbSet<Widgets> Widgets { get; set; } 
}

DbContext 本身將處理與資料庫的連線,並且通常會從配置中讀取相應的連線字串資料以確定如何建立連線:

public class ExampleContext: DbContext 
{ 
    // The parameter being passed in to the base constructor indicates the name of the 
    // connection string
    public ExampleContext() : base("ExampleContextEntities")
    {
    }

    public virtual DbSet<Widgets> Widgets { get; set; } 
}

執行實體框架查詢

實際上執行實體框架查詢可能非常簡單,只需要你建立上下文的例項,然後使用其上的可用屬性來提取或訪問你的資料

using(var context = new ExampleContext())
{
      // Retrieve all of the Widgets in your database
      var data = context.Widgets.ToList();
}

實體框架還提供了一個廣泛的更改跟蹤系統,可以通過呼叫 SaveChanges() 方法將更改推送到資料庫來處理資料庫中的更新條目:

using(var context = new ExampleContext())
{
      // Grab the widget you wish to update
      var widget = context.Widgets.Find(w => w.Id == id);
      // If it exists, update it
      if(widget != null)
      {
           // Update your widget and save your changes
           widget.Updated = DateTime.UtcNow;
           context.SaveChanges();
      }
}