實體框架連線
實體框架公開了抽象類,這些抽象類用於以 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();
}
}