連線到現有資料庫
要在 Entity Framework 中實現最簡單的任務 - 要連線到本地 MSSQL 例項上的現有資料庫 ExampleDatabase
,你必須僅實現兩個類。
首先是實體類,它將對映到我們的資料庫表 dbo.People
。
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
該類將使用 Entity Framework 的約定並對映到表 dbo.People
,該表預計具有主鍵 PersonId
和 varchar(max)
屬性 FirstName
。
第二個是派生自 System.Data.Entity.DbContext
的上下文類,它將在執行時管理實體物件,從資料庫中篡改它們,處理併發並將它們儲存回資料庫。
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
請注意,在我們的上下文的建構函式中,我們需要將資料庫初始化器設定為 null - 我們不希望 Entity Framework 建立資料庫,我們只想訪問它。
現在你可以操作該表中的資料,例如,從控制檯應用程式更改資料庫中第一個人的 FirstName
,如下所示:
class Program
{
static void Main(string[] args)
{
using (var ctx = new Context("DbConnectionString"))
{
var firstPerson = ctx.People.FirstOrDefault();
if (firstPerson != null) {
firstPerson.FirstName = "John";
ctx.SaveChanges();
}
}
}
}
在上面的程式碼中,我們使用引數 DbConnectionString
建立了 Context 的例項。這必須在我們的 app.config
檔案中指定,如下所示:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>