五、 創建連接串連接本地數據庫(ASP.NET MVC5 系列)


1. 創建連接串連接本地SQLServer數據庫

上節講到MovieDBContext類,這個類的作用是連接數據庫並將Movie對象遷移到數據庫記錄中。不過你會問一個問題:如何知道這個對象將連接哪個數據庫呢?事實是你並沒有指定所用的數據庫,EF框架將默認使用本地數據庫(LoaclDB).在這一章節中我們將給這個應用程序的web.config文件中添加一個連接字符串。

2. SQL Server自帶的Express版的LocalDB

LocalDB是在需求啟動並運行在用戶模式下的一個輕量級版本的SQL Server Express數據庫引擎。LocalDB運行在能夠使你用.mdf為后綴的數據庫文件工作的SQL Server Express的特別的執行模式。通常情況下,LocalDB的數據庫文件在Web項目的App_Data文件夾下。

SQL Server Express在真實的Web應用程序開發過程中並不推薦使用。LocalDB的流行並不是因為其在Web應用程序開發的使用,而是因為它的工作設計不依賴於IIS。此外,LocalDB數據庫也很容易的遷移到SQL Server或者SQL Azure上。

在VS2013(和VS2012)中,LocalDB是默認安裝到Visual Studio中的。

在默認的情況下,EF框架將查找一個與context類(此例是MovieDBContext)同名的連接字符串。想了解更多的信息,請查看ASP.NET應用程序的SQL Server連接串

打開這個應用程序末尾的Web.config文件(注意:不是Views文件下的Web.config),如下所示:

找到這個<connectionStrings>元素:

Web.config文件中添加下面的連接字符串到<connectionStrings>元素中.

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

下面的例子中顯示了部分Web.config文件中新添加的連接字符串:

1 <connectionStrings>
2 <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" />
3 <add name="MovieDBContext"    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"
4 />


這兩個連接字符串非常相似。第一個連接串叫做DefaultConnection被用於成員數據庫,用來控制合法用戶進入該應用程序。新添加的連接串在App_Data文件夾下指定了一個命叫Movie.mdf的LocalDB數據庫。在這本教程中我們並沒有使用成員數據庫,想了解更多關心成員,授權和安全性的信息,請查詢Deploy a Secure ASP.NET MVC app with Membership, OAuth, and SQL Database to a  Windows Azure Web Site

注意:連接串的名字必須和DbContext類的名字相匹配。

 1 using System;
 2 using System.Data.Entity;
 3 
 4 namespace MvcMovie.Models
 5 {
 6     public class Movie
 7     {
 8         public int ID { get; set; }
 9         public string Title { get; set; }
10         public DateTime ReleaseDate { get; set; }
11         public string Genre { get; set; }
12         public decimal Price { get; set; }
13     }
14 
15     public class MovieDBContext : DbContext
16     {
17         public DbSet<Movie> Movies { get; set; }
18     }
19 }

實際上你沒有添加MovieDBContext的連接串。如果你沒有指定一個連接串,EF框架將在用戶的直接目錄用DbContex類的全名(此例是MvcMovie.Models.MOvieDBContext)創建一個LocalDB數據庫。當然你可以命名任何你喜歡的數據庫名,前提是數據庫名字的后綴是.MDF.例如:我們可以命名數據庫為MyFilms.mdf.

接下來,你可以編譯這個MoviesController類了,用來顯示新的 movie數據和讓你創建新的movie列表了。

六、 從Controller中訪問模板數據(ASP.NET MVC5 系列)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM