Vytvoření připojovacího řetězce a práce s databází SQL Serveru LocalDB
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í .)
<connectionStrings>
Najděte element:
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ů.