Что такое сущность? Почему это называется сущность? - PullRequest
4 голосов
/ 07 мая 2010

Как обстоят дела с сущностями (когда речь идет о Entity Framework)? Из того, что я понимаю, это в значительной степени представление в памяти хранилища данных, такого как таблицы SQL. Объекты достаточно умны, чтобы отслеживать изменения и применять эти изменения в хранилище данных. Есть что-нибудь еще?

Заранее спасибо.

1 Ответ

8 голосов
/ 07 мая 2010

Это происходит из области системного проектирования, где они используют Диаграмма отношений между сущностями для проектирования систем.

То, что они делают, это начинают с разметки сущностей (таких как клиенты,заказы на покупку, позиции заказа на покупку и т. д.).Каждая сущность является концептуальной вещью.Затем вы обычно создаете класс сущности для каждой сущности и таблицу базы данных в качестве своего резервного хранилища.Платформа сущностей позволяет вам сделать это, взяв схему базы данных, предполагая, что это уже хорошее представление вашей диаграммы сущностей, и автоматически сгенерировать классы сущностей для их инкапсуляции.

Поскольку сущность является абстракцией реальных вещейв вашей системе, создав класс для каждой сущности, это хороший способ спроектировать вашу систему, чтобы поместить соответствующий код для каждой сущности в нужное место.Принцип работы фреймворка заключается в том, что он создает два файла: автоматически сгенерированный файл, который сопоставляется с полями базы данных, и «пользовательский» файл, в который можно поместить пользовательскую логику.Они определены как частичные файлы классов, поэтому они объединяются во время компиляции, чтобы сформировать один класс, но он обеспечивает удобный и раздельный доступ к данным и бизнес-логике.Затем вы можете заново сгенерировать автоматически сгенерированную частичную сторону класса в любое время, когда ваша схема базы данных (диаграмма отношения сущностей) изменится.

Другие отличные функции:

  • Каркас понимаетотношения между сущностями, поэтому, если у вас есть сущность «заказ на покупку», вы можете автоматически захватить все позиции строки заказа на покупку (это просто свойство сущности, которая возвращает коллекцию)
  • Вы можете реализовать наследование сущности (например, сотрудник может наследовать от контакта)
  • Linq to Entities!
...