Entity Framework
Najpierw kod strukturalny jednostki
Szukaj…
Połącz z istniejącą bazą danych
Aby osiągnąć najprostsze zadanie w Entity Framework - aby połączyć się z istniejącą bazą danych ExampleDatabase
na lokalnej instancji MSSQL, musisz zaimplementować tylko dwie klasy.
Pierwszą jest klasa encji, która zostanie zmapowana do naszej tabeli bazy danych dbo.People
. dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
Klasa wykorzysta konwencje Entity Framework i dbo.People
na tabelę dbo.People
który powinien mieć klucz podstawowy PersonId
i właściwość varchar (max) FirstName
.
Drugi to klasa kontekstu, która wywodzi się z System.Data.Entity.DbContext
i która będzie zarządzać obiektami encji w czasie wykonywania, pobierać je z bazy danych, obsługiwać współbieżność i zapisywać je z powrotem do bazy danych.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Należy pamiętać, że w konstruktorze naszego kontekstu musimy ustawić inicjator bazy danych na null - nie chcemy, aby Entity Framework tworzył bazę danych, chcemy po prostu uzyskać do niej dostęp.
Teraz możesz manipulować danymi z tej tabeli, np. Zmienić FirstName
pierwszej osoby w bazie danych za pomocą aplikacji konsoli:
class Program
{
static void Main(string[] args)
{
using (var ctx = new Context("DbConnectionString"))
{
var firstPerson = ctx.People.FirstOrDefault();
if (firstPerson != null) {
firstPerson.FirstName = "John";
ctx.SaveChanges();
}
}
}
}
W powyższym kodzie stworzyliśmy instancję Context z argumentem „DbConnectionString”. Należy to określić w naszym pliku app.config
następujący sposób:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>