1. 程式人生 > >建立連線字串(Connection String)並使用SQL Server LocalDB

建立連線字串(Connection String)並使用SQL Server LocalDB

您建立的MovieDBContext類負責處理連線到資料庫,並將Movie物件對映到資料庫記錄的任務中。你可能會問一個問題,如何指定它將連線到資料庫? 實際上,確實沒有指定要使用的資料庫,Entity Framework將預設值使用的LocalDB。 在本節中,我們將顯式地在Web.config檔案中,新增應用程式的連線字串(connection string)。

SQL Server Express LocalDB

LocalDB的是一個SQL Server Express輕量級版本的資料庫引擎。 它在使用者模式下啟動、執行。LocalDB的執行在一個特殊的SQL Server Express的執行模式,所以允許您使用MDF檔案資料庫。通常情況下,

LocalDB的資料庫檔案都儲存在web專案的App_Data資料夾下面。

注意:在生產環境的Web應用程式中,我們不推薦您使用SQL Server Express。 尤其, LocalDB不應該被用於Web應用程式的生產環境,因為它設計之初不要求使用IIS。 然而,LocalDB的資料庫能夠很容易地遷移​​到SQL Server或SQL Azure中。

備註:在 Visual Studio 2013 (Visual Studio 2012), LocalDB 預設會被安裝.

開啟應用程式根目錄的Web.config檔案。(不是View資料夾下的Web.config檔案。)開啟紅色高亮標記的Web.config

檔案。

clip_image002

找到 <connectionStrings>  :

clip_image004

Web.config檔案中的<connectionStrings>內新增下面的連線字串。

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/>

下面的例子裡顯示了部分Web.config

檔案中所新新增的連線字串:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20130603030321.mdf;Initial Catalog=aspnet-MvcMovie-20130603030321;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="MovieDBContext"    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"
/>

這兩個連線字串非常相似。第一個連線字串命名為DefaultConnection的,被用於控制可以訪問應用程式的成員鑑權資料庫。您已新增的連線字串 (connection string) 顯示位於App_Data資料夾中的 一個Movie.mdf檔案,資料庫命名為Movie.mdf。 在本教程中,我們將不使用會員資料庫有關會員,認證和安全性的更多資訊,請參閱教程: Deploy a Secure ASP.NET MVC app with Membership, OAuth, and SQL Database to a  Windows Azure Web Site

連線字串(connection string)的名稱必須匹配DbContext類的名稱。

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

實際上, 您並不需要新增MovieDBContext連線字串。 如果沒有指定一個連線字串,Entity Framework將會在使用者目錄中建立一個LocalDB資料庫的DbContext類的(如本例中MvcMovie.Models.MovieDBContext)。您也資料庫命名為任何你喜歡的東西,只要它具有.MDF的字尾。例如,我們可以命名資料庫MyFilms.mdf。經過了本節連線資料庫知識的學習,大家不妨把這些知識運用到MVC的實際開發中。當然,也不讓忘記藉助一些開發工具。使用 ComponentOne Studio ASP.NET MVC 這款輕量級控制元件,可以助力你的MVC開發,在開發效率大大提高的同時,工作量也會大大減少。

接下來,您將建立一個新的MoviesController類,您可以用它來​​展示電影資料,並允許使用者建立新的影片列表。

-----------------------------------------------------------------------------------------

《ASP.NET MVC 5 入門指南》12篇文章彙總如下:

希望這些文章對感興趣的朋友有所幫助,另附上PDF版的彙總文件:

相關閱讀: