連線到現有資料庫

要在 Entity Framework 中實現最簡單的任務 - 要連線到本地 MSSQL 例項上的現有資料庫 ExampleDatabase,你必須僅實現兩個類。

首先是實體類,它將對映到我們的資料庫表 dbo.People

    class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
    }

該類將使用 Entity Framework 的約定並對映到表 dbo.People,該表預計具有主鍵 PersonIdvarchar(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>