Recherche…


Se connecter à une base de données existante

Pour réaliser la tâche la plus simple dans Entity Framework - pour vous connecter à une base de données existante, ExampleDatabase sur votre instance locale de MSSQL, vous devez implémenter uniquement deux classes.

La première est la classe d'entité, qui sera mappée à notre table de base de données dbo.People .

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

La classe utilisera les conventions Entity Framework et dbo.People table dbo.People qui doit avoir la clé primaire PersonId et une propriété varchar (max) FirstName .

La seconde est la classe de contexte qui dérive de System.Data.Entity.DbContext et qui gérera les objets d'entité pendant l'exécution, les dirigera depuis la base de données, gérera la concurrence et les enregistrera dans la base de données.

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

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

Veuillez noter que dans le constructeur de notre contexte, nous devons définir l'initialiseur de base de données sur null - nous ne voulons pas qu'Entity Framework crée la base de données, nous voulons simplement y accéder.

Maintenant , vous êtes en mesure de manipuler les données de cette table, par exemple , changer le FirstName de la première personne dans la base de données à partir d' une application console comme ceci:

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

Dans le code ci-dessus, nous avons créé une instance de Context avec un argument "DbConnectionString". Cela doit être spécifié dans notre fichier app.config comme ceci:

  <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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow