Entity Framework
Enhetens ramkod först
Sök…
Anslut till en befintlig databas
För att uppnå den enklaste uppgiften i Entity Framework - för att ansluta till en befintlig databas ExampleDatabase
på din lokala instans av MSSQL måste du bara implementera två klasser.
Först är entitetsklassen, som kommer att kartläggas till vår databastabell dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
Klassen kommer att använda Entity Framework konventioner och karta för att tabellen dbo.People
som förväntas ha primär nyckel PersonId
och en varchar (max) egenskap FirstName
.
För det andra är kontextklassen som härstammar från System.Data.Entity.DbContext
och som hanterar entitetsobjekten under körning, pupulerar dem från databasen, hanterar samtidighet och sparar dem tillbaka till databasen.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Tänk på att i konstruktören av vårt sammanhang måste vi ställa in databasinitieraren till noll - vi vill inte att Entity Framework ska skapa databasen, vi vill bara komma åt den.
Nu kan du manipulera data från den tabellen, t.ex. ändra FirstName
på första person i databasen från en konsolapplikation som denna:
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();
}
}
}
}
I koden ovan skapade vi förekomst av kontext med ett argument "DbConnectionString". Detta måste anges i vår app.config
fil så här:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>