Entity Framework
Первоначальный код сущности
Поиск…
Подключение к существующей базе данных
Для достижения простейшей задачи в Entity Framework - для подключения к существующей базе данных ExampleDatabase
на вашем локальном экземпляре MSSQL вам нужно реализовать только два класса.
Сначала это класс сущности, который будет сопоставлен с нашей таблицей базы данных dbo.People
.
class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
}
Класс будет использовать соглашения Entity Framework и отобразить таблицу dbo.People
которая, как ожидается, будет иметь первичный ключ PersonId
и PersonId
varchar (max) FirstName
.
Во-вторых, это класс контекста, который происходит из System.Data.Entity.DbContext
и который будет управлять объектами сущности во время выполнения, укомплектовывать их из базы данных, обрабатывать параллелизм и сохранять их обратно в базу данных.
class Context : DbContext
{
public Context(string connectionString) : base(connectionString)
{
Database.SetInitializer<Context>(null);
}
public DbSet<Person> People { get; set; }
}
Имейте в виду, что в конструкторе нашего контекста нам нужно установить инициализатор базы данных на нуль - мы не хотим, чтобы Entity Framework создавал базу данных, мы просто хотим получить к ней доступ.
Теперь вы можете манипулировать данными из этой таблицы, например, изменить FirstName
первого лица в базе данных из консольного приложения следующим образом:
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();
}
}
}
}
В приведенном выше коде мы создали экземпляр Context с аргументом «DbConnectionString». Это должно быть указано в нашем файле app.config
следующим образом:
<connectionStrings>
<add name="DbConnectionString"
connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>