Zoeken…


Maak verbinding met een bestaande database

Om de eenvoudigste taak in Entity Framework te bereiken - om verbinding te maken met een bestaande database ExampleDatabase op uw lokale exemplaar van MSSQL, hoeft u slechts twee klassen te implementeren.

De eerste is de entiteitsklasse, die wordt toegewezen aan onze databasetabel dbo.People .

    class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
    }

De klasse gebruikt de conventies en toewijzing van Entity Framework om dbo.People waarvan wordt verwacht dat ze de primaire sleutel PersonId en een varchar (max) eigenschap FirstName .

Ten tweede is de contextklasse die afkomstig is van System.Data.Entity.DbContext en die de entiteitobjecten tijdens runtime beheert, ze uit de database haalt, concurrency afhandelt en ze terug in de database opslaat.

    class Context : DbContext
    {
        public Context(string connectionString) : base(connectionString)
        {
            Database.SetInitializer<Context>(null);
        }

        public DbSet<Person> People { get; set; }
    }

Houd er rekening mee dat we in de context van onze context de database-initialisatie op nul moeten zetten - we willen niet dat Entity Framework de database maakt, we willen er gewoon toegang toe hebben.

Nu bent u in staat te manipuleren gegevens uit deze tabel, bijvoorbeeld verander de FirstName van de eerste persoon in de database van een console-applicatie als volgt uit:

    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();
                }
            }
        }
    }

In de bovenstaande code hebben we instantie van Context gemaakt met een argument "DbConnectionString". Dit moet in ons app.config bestand als volgt worden gespecificeerd:

  <connectionStrings>
    <add  name="DbConnectionString" 
    connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True" 
    providerName="System.Data.SqlClient"/>
  </connectionStrings>


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow