Entity Framework ado. Net orm entity Framework


Привязка объекта к контексту



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

Привязка объекта к контексту

В случае изменения или удаления объекта, когда он получен в другом контексте, в место изменения его состояния можно выполнить привязку к контексту с помощью метода Attach:


Phone p1;
using (PhoneContext db = new PhoneContext()) {
p1 = db.Phones.FirstOrDefault();
}
// редактирование
using (PhoneContext db = new PhoneContext()) {
if (p1 != null) {
db.Phones.Attach(p1);
p1.Price = 999;
db.SaveChanges();
}
}
// удаление
using (PhoneContext db = new PhoneContext()) {
if (p1 != null) {
db.Phones.Attach(p1);
db.Remove(p1);
db.SaveChanges();
}
}

Привязка данных к DataGridView


PhoneContext db;
// При уст. начальных значений, например, в конструкторе формы:
db = new PhoneContext();
db.Phones.Load();
dataGridView1.DataSource = db.Phones.Local.ToBindingList();

Навигационные свойства

Навигационным свойством называется свойство, связывающее сущность с другой сущностью, или набором сущностей БД.

Пример: футболисты и команды футболистов:


class Player
{
public int Id { get; set; }
public string Name { get; set; }
public string Position { get; set; }
public int Age { get; set; }
public int? TeamId { get; set; } // = Нав. Свойство + Имя ключа из связ.таб
public Team Team { get; set; } // навигационной свойство
}
class Team
{
public int Id { get; set; }
public string Name { get; set; } // название команды
public string Coach { get; set; } // тренер
public ICollection
Players { get; set; } // навигационной свойство
}

Внешний ключ позволяет получать связанные данные. Например, после генерации базы данных с помощью Code First таблица Players будет иметь следующее определение:


CREATE TABLE [dbo].[Players] (


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




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

    Басты бет