Entity Framework
Entity-Framework-Code zuerst
Suche…
Stellen Sie eine Verbindung zu einer vorhandenen Datenbank her
Um die einfachste Aufgabe in Entity Framework zu erreichen: Um eine Verbindung zu einer vorhandenen Datenbank ExampleDatabase
in Ihrer lokalen Instanz von MSSQL ExampleDatabase
, müssen Sie nur zwei Klassen implementieren.
Zuerst wird die Entitätsklasse angegeben, die unserer Datenbanktabelle dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
Die Klasse verwendet die Konventionen von Entity Framework und dbo.People
der Tabelle dbo.People
deren Primärschlüssel PersonId
und die varchar (max) FirstName
.
Die zweite Klasse ist die von System.Data.Entity.DbContext
Kontextklasse, die die Entitätsobjekte zur Laufzeit verwaltet, aus der Datenbank kopiert, die Parallelität handhabt und sie in der Datenbank speichert.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Bitte beachten Sie, dass wir im Konstruktor unseres Kontexts den Datenbankinitialisierer auf null setzen müssen. Wir möchten nicht, dass Entity Framework die Datenbank erstellt, sondern lediglich auf die Datenbank.
Jetzt können Sie Daten aus dieser Tabelle FirstName
, z. B. den FirstName
der ersten Person in der Datenbank von einer Konsolenanwendung wie FirstName
ändern:
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();
}
}
}
}
Im obigen Code haben wir eine Instanz von Context mit dem Argument "DbConnectionString" erstellt. Dies muss in unserer app.config
Datei wie app.config
angegeben werden:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>