Sdílet prostřednictvím


Vytvoření připojovacího řetězce a práce s databází SQL Serveru LocalDB

Rick Anderson

Poznámka

Aktualizovaná verze tohoto kurzu je k dispozici zde pomocí nejnovější verze sady Visual Studio. Nový kurz používá ASP.NET Core MVC, který poskytuje mnoho vylepšení oproti tomuto kurzu.

Tento kurz učí ASP.NET Core MVC s kontrolery a zobrazeními. Razor Pages je novou alternativou v ASP.NET Core, programovacím modelu založeném na stránkách, který usnadňuje a produktivnější vytváření webového uživatelského rozhraní. Doporučujeme vyzkoušet kurz Razor Pages před verzí MVC. Kurz Razor Pages:

  • Je snazší ho sledovat.
  • Zahrnuje další funkce.
  • Je upřednostňovaný přístup pro vývoj nových aplikací.

Vytvoření připojovacího řetězce a práce s databází SQL Serveru LocalDB

Třída MovieDBContext , kterou jste vytvořili, zpracovává úlohu připojení k databázi a mapování Movie objektů na databázové záznamy. Jednou z otázek, kterou si můžete položit, je, jak určit, ke které databázi se bude připojovat. Ve skutečnosti nemusíte zadávat, kterou databázi chcete použít. Entity Framework ve výchozím nastavení použije LocalDB. V této části explicitně přidáme připojovací řetězec do Web.config souboru aplikace.

SQL Server Express LocalDB

LocalDB je odlehčená verze databázového stroje SQL Server Express, která se spouští na vyžádání a běží v uživatelském režimu. LocalDB běží ve speciálním režimu spouštění SQL Server Express, který umožňuje pracovat s databázemi jako soubory .mdf. Soubory databáze LocalDB se obvykle uchovávají ve složce App_Data webového projektu.

SQL Server Express se nedoporučuje používat v produkčních webových aplikacích. Zejména localDB by se neměla používat pro produkční prostředí s webovou aplikací, protože není navržená pro práci se službou IIS. Databázi LocalDB ale můžete snadno migrovat na SQL Server nebo SQL Azure.

V sadě Visual Studio 2017 se ve výchozím nastavení nainstaluje LocalDB se sadou Visual Studio.

Ve výchozím nastavení Entity Framework hledá připojovací řetězec s názvem stejný jako třída kontextu objektu (MovieDBContext pro tento projekt). Další informace najdete v tématu SQL Server připojovací řetězce pro webové aplikace ASP.NET.

Otevřete kořenový soubor aplikaceWeb.config uvedený níže. (Ne souborWeb.config ve složce Zobrazení .)

Snímek obrazovky, který zobrazuje okno Průzkumník řešení a konfiguraci webové tečky je vybrané a červeně zakroužkované.

<connectionStrings> Najděte element:

Snímek obrazovky znázorňující kód a prvek připojovacího řetězce je červeně zakroužkovaný.

Do elementu <connectionStrings> v souboru Web.config přidejte následující připojovací řetězec.

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

Následující příklad ukazuje část souboruWeb.config s přidaným novým připojovacím řetězcem:

<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>

Oba připojovací řetězce jsou velmi podobné. První připojovací řetězec má název DefaultConnection a používá se pro databázi členství k řízení, kdo má přístup k aplikaci. Připojovací řetězec, který jste přidali, určuje databázi LocalDB s názvem Movie.mdf umístěnou ve složce App_Data . V tomto kurzu nebudeme používat databázi členství. Další informace o členství, ověřování a zabezpečení najdete v mém kurzu Vytvoření aplikace ASP.NET MVC s ověřováním a DATABÁZÍ SQL a nasazení do Azure App Service.

Název připojovacího řetězce musí odpovídat názvu DbContext třídy.

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; }
    }
}

Připojovací řetězec nemusíte přidávat MovieDBContext . Pokud nezadáte připojovací řetězec, Entity Framework vytvoří databázi LocalDB v adresáři users s plně kvalifikovaným názvem třídy DbContext (v tomto případě MvcMovie.Models.MovieDBContext). Databázi můžete pojmenovat libovolným způsobem, pokud má . Přípona MDF . Databázi bychom mohli pojmenovat například MyFilms.mdf.

Dále vytvoříte novou MoviesController třídu, kterou můžete použít k zobrazení dat filmů a umožnit uživatelům vytvářet nové záznamy filmů.