ASP.NET MVC 5 入门(05):创建连接字符串并使用 SQL Server LocalDB

原文:https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/getting-started/introduction/creating-a-connection-string

作者: Rick Anderson

ASP.NET MVC 5 入门

ASP.NET MVC 5 简介

此教程的更新版本可在此处使用最新版本的Visual Studio 新教程使用ASP.NET CORE MVC,这在本教程中提供了许多改进。

本教程介绍具有控制器和视图的 ASP.NET Core MVC。 Razor 页面是 ASP.NET Core 2.0 中的一个新选择,它是基于页面的编程模型,可以实现更简单、更高效地生成 Web UI。 建议先尝试 Razor 页面教程,再使用 MVC 版本。 Razor 页面教程:

  • 易于关注。
  • 涵盖更多功能。
  • 是开发新应用程序的首选方法。

以下教程系列介绍了GitHub上的 ASP.NET MVC: Source

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

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

二、SQL Server Express LocalDB

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

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

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

默认情况下,实体框架将查找与对象上下文类(此项目MovieDBContext)相同的连接字符串。 有关详细信息,请参阅SQL Server ASP.NET Web 应用程序的连接字符串

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

查找 <connectionStrings> 元素:

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

<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,并用于成员资格数据库以控制谁可以访问应用程序。 已添加的连接字符串指定应用_Data文件夹中名为Movie .mdf的 LocalDB 数据库。 在本教程中,我们不会使用成员资格数据库,有关成员身份、身份验证和安全性的详细信息,请参阅我的教程使用身份验证和 SQL 数据库创建 ASP.NET MVC 应用并将其部署到 Azure App Service

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

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

原文地址:https://www.cnblogs.com/springsnow/p/13262998.html