Udostępnij za pośrednictwem


Database Klasa

Definicja

Wystąpienie tej klasy jest uzyskiwane z DbContext obiektu i może służyć do zarządzania rzeczywistą bazą danych na potrzeby tworzenia kopii zapasowej obiektu DbContext lub połączenia. Obejmuje to tworzenie, usuwanie i sprawdzanie istnienia bazy danych. Należy pamiętać, że usunięcie i sprawdzenie istnienia bazy danych można wykonać przy użyciu tylko połączenia (tj. bez pełnego kontekstu) przy użyciu metod statycznych tej klasy.

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
Dziedziczenie
Database
Atrybuty

Właściwości

CommandTimeout

Pobiera lub ustawia wartość limitu czasu w sekundach dla wszystkich operacji kontekstowych. Wartość domyślna to null, gdzie wartość null wskazuje, że zostanie użyta domyślna wartość podstawowego dostawcy.

Connection

Zwraca połączenie używane przez ten kontekst. Może to spowodować utworzenie połączenia, jeśli jeszcze nie istnieje.

CurrentTransaction

Pobiera transakcję, w której znajduje się połączenie magazynu bazowego. Może mieć wartość null.

DefaultConnectionFactory
Przestarzałe.

Fabryka połączeń, która ma być używana podczas tworzenia elementu DbConnection na podstawie tylko nazwy bazy danych lub parametrów połączenia.

Log

Ustaw tę właściwość, aby zarejestrować sql wygenerowany przez DbContext element na dany delegat. Na przykład aby zalogować się do konsoli, ustaw tę właściwość na Write(String)wartość .

Metody

BeginTransaction()

Rozpoczyna transakcję w bazowym połączeniu magazynu

BeginTransaction(IsolationLevel)

Rozpoczyna transakcję na podstawowym połączeniu magazynu przy użyciu określonego poziomu izolacji

CompatibleWithModel(Boolean)

Sprawdza, czy baza danych jest zgodna z bieżącym modelem Code First.

Create()

Tworzy nową bazę danych na serwerze bazy danych dla modelu zdefiniowanego w kontekście tworzenia kopii zapasowych. Należy pamiętać, że wywołanie tej metody przed uruchomieniem strategii inicjowania bazy danych spowoduje wyłączenie wykonywania tej strategii.

CreateIfNotExists()

Tworzy nową bazę danych na serwerze bazy danych dla modelu zdefiniowanego w kontekście tworzenia kopii zapasowej, ale tylko wtedy, gdy baza danych o tej samej nazwie jeszcze nie istnieje na serwerze.

Delete()

Usuwa bazę danych na serwerze bazy danych, jeśli istnieje, w przeciwnym razie nic nie robi. Wywołanie tej metody spoza inicjatora spowoduje oznaczenie bazy danych jako nie zainicjowanej. Oznacza to, że jeśli zostanie podjęta próba ponownego użycia bazy danych po jej usunięciu, każdy zestaw inicjatora zostanie uruchomiony ponownie, a zwykle spróbuje ponownie utworzyć bazę danych ponownie.

Delete(DbConnection)

Usuwa bazę danych na serwerze bazy danych, jeśli istnieje, w przeciwnym razie nic nie robi.

Delete(String)

Usuwa bazę danych na serwerze bazy danych, jeśli istnieje, w przeciwnym razie nic nie robi. Połączenie z bazą danych jest tworzone przy użyciu podanej nazwy bazy danych lub parametrów połączenia w taki sam sposób, jak opisano w dokumentacji klasy DbContext .

Equals(Object)

Wystąpienie tej klasy jest uzyskiwane z DbContext obiektu i może służyć do zarządzania rzeczywistą bazą danych na potrzeby tworzenia kopii zapasowej obiektu DbContext lub połączenia. Obejmuje to tworzenie, usuwanie i sprawdzanie istnienia bazy danych. Należy pamiętać, że usunięcie i sprawdzenie istnienia bazy danych można wykonać przy użyciu tylko połączenia (tj. bez pełnego kontekstu) przy użyciu metod statycznych tej klasy.

ExecuteSqlCommand(String, Object[])

Wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommand("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommand("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommand("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommand("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Asynchronicznie wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Asynchronicznie wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Asynchronicznie wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Asynchronicznie wykonuje dane polecenie DDL/DML względem bazy danych.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posty SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternatywnie możesz również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Dzięki temu można używać nazwanych parametrów w ciągu zapytania SQL. Kontekście. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

Sprawdza, czy baza danych istnieje na serwerze.

Exists(DbConnection)

Sprawdza, czy baza danych istnieje na serwerze.

Exists(String)

Sprawdza, czy baza danych istnieje na serwerze. Połączenie z bazą danych jest tworzone przy użyciu podanej nazwy bazy danych lub parametrów połączenia w taki sam sposób, jak opisano w dokumentacji klasy DbContext .

GetHashCode()

Wystąpienie tej klasy jest uzyskiwane z DbContext obiektu i może służyć do zarządzania rzeczywistą bazą danych na potrzeby tworzenia kopii zapasowej obiektu DbContext lub połączenia. Obejmuje to tworzenie, usuwanie i sprawdzanie istnienia bazy danych. Należy pamiętać, że usunięcie i sprawdzenie istnienia bazy danych można wykonać przy użyciu tylko połączenia (tj. bez pełnego kontekstu) przy użyciu metod statycznych tej klasy.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

Initialize(Boolean)

Uruchamia zarejestrowane IDatabaseInitializer<TContext> w tym kontekście. Jeśli wartość "force" jest ustawiona na wartość true, inicjator jest uruchamiany niezależnie od tego, czy został uruchomiony wcześniej. Może to być przydatne, jeśli baza danych zostanie usunięta, gdy aplikacja jest uruchomiona i musi zostać ponownie zainicjowana. Jeśli dla ustawienia "force" ustawiono wartość false, inicjator jest uruchamiany tylko wtedy, gdy nie został jeszcze uruchomiony dla tego kontekstu, modelu i połączenia w tej domenie aplikacji. Ta metoda jest zwykle używana, gdy konieczne jest upewnienie się, że baza danych została utworzona i rozstawiona przed rozpoczęciem operacji, w której wykonanie tej operacji z opóźnieniem spowoduje problemy, takie jak wtedy, gdy operacja jest częścią transakcji.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Ustawia inicjator bazy danych do użycia dla danego typu kontekstu. Inicjator bazy danych jest wywoływany, gdy dany DbContext typ jest używany do uzyskiwania dostępu do bazy danych po raz pierwszy. Domyślną strategią kontekstów Code First jest wystąpienie klasy CreateDatabaseIfNotExists<TContext>.

SqlQuery(Type, String, Object[])

Tworzy nieprzetworzone zapytanie SQL, które zwróci elementy danego typu. Typ może być dowolnym typem, który ma właściwości zgodne z nazwami kolumn zwracanych z zapytania, lub może być prostym typem pierwotnym. Typ nie musi być typem jednostki. Wyniki tego zapytania nigdy nie są śledzone przez kontekst, nawet jeśli zwracany typ obiektu jest typem jednostki. SqlQuery(String, Object[]) Użyj metody , aby zwrócić jednostki śledzone przez kontekst.

SqlQuery<TElement>(String, Object[])

Tworzy nieprzetworzone zapytanie SQL, które zwróci elementy danego typu ogólnego. Typ może być dowolnym typem, który ma właściwości zgodne z nazwami kolumn zwracanych z zapytania, lub może być prostym typem pierwotnym. Typ nie musi być typem jednostki. Wyniki tego zapytania nigdy nie są śledzone przez kontekst, nawet jeśli zwracany typ obiektu jest typem jednostki. SqlQuery(String, Object[]) Użyj metody , aby zwrócić jednostki śledzone przez kontekst.

ToString()

Wystąpienie tej klasy jest uzyskiwane z DbContext obiektu i może służyć do zarządzania rzeczywistą bazą danych na potrzeby tworzenia kopii zapasowej obiektu DbContext lub połączenia. Obejmuje to tworzenie, usuwanie i sprawdzanie istnienia bazy danych. Należy pamiętać, że usunięcie i sprawdzenie istnienia bazy danych można wykonać przy użyciu tylko połączenia (tj. bez pełnego kontekstu) przy użyciu metod statycznych tej klasy.

UseTransaction(DbTransaction)

Umożliwia użytkownikowi przekazanie transakcji bazy danych utworzonej poza obiektem Database , jeśli chcesz, aby program Entity Framework wykonywał polecenia w ramach tej transakcji zewnętrznej. Alternatywnie przekaż wartość null, aby wyczyścić wiedzę platformy na temat tej transakcji.

Dotyczy