Sdílet prostřednictvím


Database Třída

Definice

Instance této třídy je získána z objektu DbContext a lze ji použít ke správě skutečné databáze zálohování DbContext nebo připojení. To zahrnuje vytvoření, odstranění a kontrolu existence databáze. Upozorňujeme, že odstranění a kontrolu existence databáze lze provést pouze pomocí připojení (tj. bez úplného kontextu) pomocí statických metod této třídy.

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
Dědičnost
Database
Atributy

Vlastnosti

CommandTimeout

Získá nebo nastaví hodnotu časového limitu v sekundách pro všechny kontextové operace. Výchozí hodnota je null, kde null označuje, že se použije výchozí hodnota podkladového zprostředkovatele.

Connection

Vrátí připojení používané tímto kontextem. To může způsobit vytvoření připojení, pokud ještě neexistuje.

CurrentTransaction

Získá transakce základního úložiště připojení je zapsána v. Může mít hodnotu null.

DefaultConnectionFactory
Zastaralé.

Objekt pro připojení, který se má použít při vytváření DbConnection pouze z názvu databáze nebo připojovacího řetězce.

Log

Nastavte tuto vlastnost tak, aby protokoloval SQL vygenerovaný DbContext do daného delegáta. Chcete-li se například přihlásit ke konzole, nastavte tuto vlastnost na Write(String)hodnotu .

Metody

BeginTransaction()

Zahájí transakci v podkladovém připojení k úložišti.

BeginTransaction(IsolationLevel)

Zahájí transakci na podkladovém připojení k úložišti s použitím zadané úrovně izolace.

CompatibleWithModel(Boolean)

Zkontroluje, jestli je databáze kompatibilní s aktuálním modelem Code First.

Create()

Vytvoří novou databázi na databázovém serveru pro model definovaný v kontextu zálohování. Všimněte si, že volání této metody před spuštěním strategie inicializace databáze zakáže provádění této strategie.

CreateIfNotExists()

Vytvoří novou databázi na databázovém serveru pro model definovaný v kontextu zálohování, ale pouze v případě, že databáze se stejným názvem již na serveru neexistuje.

Delete()

Odstraní databázi na databázovém serveru, pokud existuje, jinak neprovede nic. Voláním této metody mimo inicializátor se databáze označí jako neicializovaná. To znamená, že pokud dojde k pokusu o opětovné použití databáze po jejím odstranění, pak se jakákoli sada inicializátorů spustí znovu a obvykle se pokusí databázi vytvořit znovu automaticky.

Delete(DbConnection)

Odstraní databázi na databázovém serveru, pokud existuje, jinak neprovede nic.

Delete(String)

Odstraní databázi na databázovém serveru, pokud existuje, jinak neprovede nic. Připojení k databázi se vytvoří pomocí daného názvu databáze nebo připojovacího řetězce stejným způsobem, jak je popsáno v dokumentaci ke DbContext třídě.

Equals(Object)

Instance této třídy je získána z objektu DbContext a lze ji použít ke správě skutečné databáze zálohování DbContext nebo připojení. To zahrnuje vytvoření, odstranění a kontrolu existence databáze. Upozorňujeme, že odstranění a kontrolu existence databáze lze provést pouze pomocí připojení (tj. bez úplného kontextu) pomocí statických metod této třídy.

ExecuteSqlCommand(String, Object[])

Spustí daný příkaz DDL/DML pro databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommand("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommand("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Spustí daný příkaz DDL/DML pro databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommand("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommand("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Asynchronně spustí daný příkaz DDL/DML proti databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Asynchronně spustí daný příkaz DDL/DML proti databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[])

Asynchronně spustí daný příkaz DDL/DML proti databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Asynchronně spustí daný příkaz DDL/DML proti databázi.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitele umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativně můžete také vytvořit DbParameter a poskytnout ho sqlQuery. To vám umožní použít pojmenované parametry v řetězci dotazu SQL. Kontextu. Database.ExecuteSqlCommandAsync("UPDATE dbo. Příspěvky SET Hodnocení = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

Zkontroluje, jestli databáze na serveru existuje.

Exists(DbConnection)

Zkontroluje, jestli databáze na serveru existuje.

Exists(String)

Zkontroluje, jestli databáze na serveru existuje. Připojení k databázi se vytvoří pomocí daného názvu databáze nebo připojovacího řetězce stejným způsobem, jak je popsáno v dokumentaci ke DbContext třídě.

GetHashCode()

Instance této třídy je získána z objektu DbContext a lze ji použít ke správě skutečné databáze zálohování DbContext nebo připojení. To zahrnuje vytvoření, odstranění a kontrolu existence databáze. Upozorňujeme, že odstranění a kontrolu existence databáze lze provést pouze pomocí připojení (tj. bez úplného kontextu) pomocí statických metod této třídy.

GetType()

Získá aktuální Type instanci.

Initialize(Boolean)

Spustí zaregistrovaný IDatabaseInitializer<TContext> objekt v tomto kontextu. Pokud je hodnota "force" nastavená na hodnotu true, pak se inicializátor spustí bez ohledu na to, zda byl spuštěn dříve. To může být užitečné, pokud se databáze odstraní, když je aplikace spuštěná a je potřeba ji znovu inicializovat. Pokud je hodnota force nastavená na false, inicializátor se spustí jenom v případě, že ještě nebyl spuštěn pro tento kontext, model a připojení v této doméně aplikace. Tato metoda se obvykle používá v případě, že je nutné zajistit, aby databáze byla vytvořena a před zahájením nějaké operace, kde to líné způsobí problémy, například když je operace součástí transakce.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Nastaví inicializátor databáze tak, aby se použil pro daný typ kontextu. Inicializátor databáze se volá, když se pro první přístup k databázi použije daný DbContext typ. Výchozí strategií pro kontexty Code First je instance .CreateDatabaseIfNotExists<TContext>

SqlQuery(Type, String, Object[])

Vytvoří nezpracovaný dotaz SQL, který vrátí prvky daného typu. Typ může být libovolný typ, který má vlastnosti, které odpovídají názvům sloupců vrácených z dotazu, nebo může být jednoduchý primitivní typ. Typ nemusí být typem entity. Výsledky tohoto dotazu nejsou nikdy sledovány kontextem, i když je vrácený typ objektu typem entity. Použijte metodu SqlQuery(String, Object[]) k vrácení entit, které jsou sledovány kontextem.

SqlQuery<TElement>(String, Object[])

Vytvoří nezpracovaný dotaz SQL, který vrátí prvky daného obecného typu. Typ může být libovolný typ, který má vlastnosti, které odpovídají názvům sloupců vrácených z dotazu, nebo může být jednoduchý primitivní typ. Typ nemusí být typem entity. Výsledky tohoto dotazu nejsou nikdy sledovány kontextem, i když je vrácený typ objektu typem entity. Použijte metodu SqlQuery(String, Object[]) k vrácení entit, které jsou sledovány kontextem.

ToString()

Instance této třídy je získána z objektu DbContext a lze ji použít ke správě skutečné databáze zálohování DbContext nebo připojení. To zahrnuje vytvoření, odstranění a kontrolu existence databáze. Upozorňujeme, že odstranění a kontrolu existence databáze lze provést pouze pomocí připojení (tj. bez úplného kontextu) pomocí statických metod této třídy.

UseTransaction(DbTransaction)

Umožňuje uživateli předat databázovou transakci vytvořenou Database mimo objekt, pokud chcete, aby Entity Framework spouštět příkazy v rámci této externí transakce. Alternativně můžete předat hodnotu null, abyste vymazlily znalosti architektury o této transakci.

Platí pro