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>


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow