admin管理员组

文章数量:1794759

ASP.NET MVC入门——使用数据库(SQL server)

ASP.NET MVC入门——使用数据库(SQL server)

创建连接字符串并使用 SQL Server LocalDB

MovieDBContext你创建的类将处理连接到数据库的任务,并将 Movie 对象映射到数据库记录。 但您可能会问的一个问题是如何指定它将连接到的数据库。 实际上不必指定要使用的数据库,实体框架将默认为使用 LocalDB。 在本部分中,我们将在应用程序的 Web.config 文件中显式添加一个连接字符串。

SQL Server Express LocalDB

LocalDB 是按需启动并在用户模式下运行的 SQL Server Express 数据库引擎的轻型版本。 LocalDB 在 SQL Server Express 的特殊执行模式下运行,该模式使您能够将数据库用作 .mdf 文件。 通常,LocalDB 数据库文件保存在 web 项目的 应用程序 _ 数据 文件夹中。

不建议在生产 web 应用程序中使用 SQL Server Express。 LocalDB 不应与 web 应用程序一起用于生产,因为它不能与 IIS 一起使用。 但是,可以轻松地将 LocalDB 数据库迁移到 SQL Server 或 SQL Azure。

在 Visual Studio 2017 中,默认情况下使用 Visual Studio 安装 LocalDB。

默认情况下,实体框架会查找名称与此项目) 的对象上下文类 (相同的连接字符串 MovieDBContext 。

打开如下所示的应用程序根 Web.config 文件。 (不是Views文件夹中的Web.config文件。 )

查找 <connectionStrings> 元素:

 

将以下连接字符串添加到 <connectionStrings> Web.config 文件中的元素。

<add name="MovieDBContext" connectionString="Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=ASPNET-MVCMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\Movies.mdf" providerName="System.Data.SqlClient" />

 

下面的示例显示了 Web.config 文件的一部分,其中添加了新的连接字符串:

<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\Movies.mdf" providerName="System.Data.SqlClient" /> </connectionStrings>

这两个连接字符串非常类似。 首先命名第一个连接字符串 DefaultConnection ,并将其用于成员资格数据库,以控制谁可以访问应用程序。 添加的连接字符串指定了位于应用程序 _ 数据文件夹中名为Movie .mdf的 LocalDB 数据库。 在本教程中,我们不会使用成员资格数据库,有关成员身份、身份验证和安全性的详细信

连接字符串的名称必须与 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 连接字符串。 如果未指定连接字符串,实体框架将在用户目录中创建一个 LocalDB 数据库,该数据库具有 DbContext 类的完全限定名 (在这种情况下 MvcMovie.Models.MovieDBContext) 。 只要数据库具有,就可以将其命名为任意名称 。.MDF 后缀。 例如,我们可以将数据库命名为 MyFilms。

接下来,您将生成一个新 MoviesController 类,您可以使用它来显示电影数据,并允许用户创建新的电影节目表。

本文标签: 入门数据库netASPMVC