Entity Framework ado. Net orm entity Framework


Основные операции с данными Общая информация



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

Основные операции с данными

Общая информация

Большинство операций с данными представляют собой CRUD-операции (Create, Read, Update, Delete), то есть получение данных, создание, обновление и удаление. Entity Framework позволяет легко производить данные операции.

Для примера используется следующие модель и контекст данных:


public class Phone
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
}
public class PhoneContext : DbContext
{
public DbSet
Phones { get; set; }
...
}

Добавление


using (PhoneContext db = new PhoneContext()) {
Phone p1 = new Phone { Name = "Samsung Galaxy S7", Price = 20000 };
Phone p2 = new Phone { Name = "iPhone 7", Price = 28000 };
// добавление
db.Phones.Add(p1);
db.Phones.Add(p2);
db.SaveChanges(); // сохранение изменений
var phones = db.Phones.ToList();
foreach (var p in phones)
Console.WriteLine("{0} - {1} - {2}", p.Id, p.Name, p.Price);
}

Изменение

Однако, если объект получен в одном контексте, а изменения следует сохранить во втором, тогда необходимо явным образом установить для его состояния значение EntityState.Modified:


using (PhoneContext db = new PhoneContext()) {
// получаем первый объект
Phone p1 = db.Phones.FirstOrDefault();
p1.Price = 30000;
db.SaveChanges(); // сохраняем изменения
}
using (PhoneContext db = new PhoneContext()) {
if (p1 != null) {
p1.Price = 60000;
db.Entry(p1).State = EntityState.Modified;
db.SaveChanges();
}
}

Удаление

Если объект получен в одном контексте, а удаление выполняется во втором, тогда необходимо явным образом установить для его состояния значение EntityState.Deleted:


using (PhoneContext db = new PhoneContext()) {
Phone p1 = db.Phones.FirstOrDefault();
if (p1 != null) {
db.Phones.Remove(p1);
db.SaveChanges();
}
}
using (PhoneContext db = new PhoneContext()) {
if (p1 != null) {
db.Entry(p1).State = EntityState.Deleted;
db.SaveChanges();
}
}


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




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

    Басты бет