Entity Framework ado. Net orm entity Framework


Способы взаимодействия с БД Entity Framework предполагает три возможных способа взаимодействия с базой данных



бет2/5
Дата15.11.2023
өлшемі135,1 Kb.
#123538
1   2   3   4   5

Способы взаимодействия с БД

Entity Framework предполагает три возможных способа взаимодействия с базой данных:

  • Database first: Entity Framework создает набор классов, которые отражают модель конкретной базы данных
  • Model first: сначала разработчик создает модель базы данных, по которой затем Entity Framework создает реальную базу данных на сервере.
  • Code first: разработчик создает класс модели данных, которые будут храниться в бд, а затем Entity Framework по этой модели генерирует базу данных и ее таблицы

Пример. Модель:


// Модель
public class Car
{
public int CarId { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Manufacturer { get; set; }
}

Контекст для работы с БД


public class Parking : DbContext
{
public DbSet Cars { get; set; }
public Parking()
: base()
{
}
// Конструктор для использования на уже открытом соединении
public Parking(DbConnection existingConnection, bool contextOwnsConnection)
: base(existingConnection, contextOwnsConnection)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity().MapToStoredProcedures();
}
}
public static void ExecuteExample()
{
string connectionString = "server=localhost;port=3305;database=parking;uid=root;";
using (MySqlConnection connection = new MySqlConnection(connectionString)) {
using (Parking contextDB = new Parking(connection, false)) {
contextDB.Database.CreateIfNotExists();
} connection.Open();
MySqlTransaction transaction = connection.BeginTransaction();
try { // DbConnection that is already opened
using (Parking context = new Parking(connection, false)) {
// Interception/SQL logging
context.Database.Log = (string message) => { Console.WriteLine(message); };
// Passing an existing transaction to the context
context.Database.UseTransaction(transaction);
// DbSet.AddRange
List cars = new List();
cars.Add(new Car { Manufacturer = "Nissan", Model = "370Z", Year = 2012 });
cars.Add(new Car { Manufacturer = "Ford", Model = "Mustang",Year = 2013 });
cars.Add(new Car { Manufacturer ="Chevrolet",Model ="Camaro",Year = 2012});
cars.Add(new Car { Manufacturer = "Dodge", Model ="Charger",Year = 2013 });
context.Cars.AddRange(cars);
context.SaveChanges();
}
transaction.Commit();
}
catch {
transaction.Rollback();
throw;
}
}
}


Достарыңызбен бөлісу:
1   2   3   4   5




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет