Ответ
В Entity Framework (EF) сущность (Entity) — это обычный класс CLR (POCO), который представляет бизнес-объект и напрямую сопоставляется с таблицей (или представлением) в базе данных. Каждый экземпляр сущности соответствует строке в этой таблице.
Ключевые характеристики сущности:
- Идентичность: Имеет уникальный ключ (обычно свойство
Idили составной ключ), который EF Core использует для отслеживания. - Отслеживание изменений: Экземпляры, извлеченные в контекст (
DbContext), отслеживаются на предмет изменений для последующей генерации операторовINSERT,UPDATE,DELETE. - Связи: Может навигационными свойствами определять связи с другими сущностями (один-ко-многим, многие-ко-многим).
Пример базовой сущности:
public class Blog // Сущность, сопоставленная с таблицей "Blogs"
{
// Свойство первичного ключа (по соглашению)
public int Id { get; set; }
// Простые свойства (сопоставляются со столбцами)
public string Url { get; set; }
public int Rating { get; set; }
// Навигационное свойство (связь "один ко многим" с Post)
public ICollection<Post> Posts { get; set; }
}
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
// Свойство внешнего ключа и навигационное свойство
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
Отличие от DTO/ViewModel: Сущность содержит логику предметной области и состояние для сохранения, в то время как DTO — это простой контейнер для передачи данных, не привязанный к контексту EF.