Users
/ \
/ \
M-T-O M-T-O
/ \
/ \
Products----M-T-M----Tags
Интересно, есть ли документация о том, как создать такую схему с сущностями. Я застрял в размышлении о том, какая сущность должна нести ответственность за что в отношениях.
Например:
Допустим, я хочу добавить метку к товару. У меня есть такой метод в моем
сущность продукта:
public virtual void AddTag(Tag tag)
{
this.Tags.Add(tag); // IList<Tag> Tags
tag.AddProduct(this);
}
Сначала добавляется объект тега в список тегов. Затем этот объект тега добавляет этот продукт в свой список продуктов.
Пока все хорошо.
Но что, если я хочу добавить товар в тег? У меня есть такой метод в моем
тег сущности:
public virtual void AddProduct(Product product)
{
this.Products.Add(product); // IList<Product> Products
// product.AddTag(this);
}
Итак, сначала я добавляю объект product в список продуктов в моем объекте tag. Затем я мог бы добавить тег «this» к продукту, но именно здесь я застрял. Комментируемый метод генерирует ошибку stackoverflow, поскольку он вызывает метод AddProduct, который вызывает AddTag и т. Д. И т.
Не уверен, что моя схема действительно верна. M-T-O от пользователя к тегам облегчает задачу, когда я хочу увидеть, какие теги есть у пользователя.
Так что мне было интересно, кто-нибудь может указать мне правильное направление?
Заранее спасибо,
Pickels