У меня есть совокупность продуктов, в которой есть несколько ключевых слов для поиска товаров.Я смоделировал это следующим образом:
public class Product : Entity<Guid,Product> , IAggregateRoot
{
public Guid AccountId { get; protected set; }
public string Title { get; protected set; }
public DateTimeOffset AddingDate { get; protected set; }
public decimal Price { get; protected set; }
public string Brand { get; protected set; }
public string Description { get; protected set; }
public IList<Keyword> Keywords { get; protected set; }
}
public class Keyword : ValueObject<Keyword>
{
public Keyword(string title)
{
this.Title = title;
}
public string Title { get; protected set; }
}
В зависимости от сущность-значение-объект-окончательный-список-различий Объекты-значения имеют несколько характеристик:
1.Два объекта значений считаются равными, если они имеют одинаковые значения атрибутов.
2. Значения объектов имеют нулевой срок службы.
3. Объекты значения неизменны.
Но для целей поиска ябудет хранить ключевые слова столько-ко-многим с таблицей продуктов, как рекомендовано Здесь вместо строки, разделенной запятыми.
Поэтому я собираюсь смоделировать ключевое слово как объект значения, потому что мне все равноо его идентичности (будь то автоматически сгенерированное целое число или Guid) и о том, чтобы пометить два ключевых слова как равные по их атрибуту (который находится здесь в заголовке).
Мой вопрос: должен ли я моделировать ключевое слово как объект значения или сущность в зависимости отсценарий выше и почему?
Редактировать:
В зависимости от статьи, которую я предоставил выше:
Не вводить отдельные таблицы дляобъект стоимостиs, просто вставьте их в таблицу родительской сущности.
Ключевое слово следует рассматривать как сущность (но я думаю, что модели домена и базы данных не должны зависеть друг от друга)