Лучший способ обновить ссылку на таблицу в nhibernate? - PullRequest
0 голосов
/ 15 марта 2012

Скажи, что у меня есть это.

В стране много продуктов, и у продукта может быть много стран (от многих ко многим).

Теперь продукт А имеет

US
Canada

Теперь по какой-то причине они прекращают продавать продукт А в Канаде. Как обновить продукт A, чтобы удалить связь, поскольку теперь продукт A больше не находится в Канаде.

Должен ли я очистить список под названием ProudctA.Countries.Clear(). Затем перейдите и добавьте страны, которые все еще выбраны?

ProductA.Countries.Add(loadCountry(id)) // this would be a loop and I would be loading the ids from the select countries.

Или я должен кое-как выяснить, что изменилось и называется как удаление или что-то в этом роде?

Я получаю список Guid с сервера. Пользователь просто видит список выбора и выбирает страны.

Когда они редактировали Продукт, были выбраны США и Канада, но затем они решили отменить выбор Канады, поэтому на сервер был отправлен только Гид США.

1 Ответ

0 голосов
/ 16 марта 2012

Я бы сделал что-то вроде этого

countriesToRemove = productA.Countries.Where(c => !selectedIds.Contains(c.Id)).ToList();

foreach(var country in countriesToRemove)
{
    productA.Countries.Remove(country);
}

, однако, поскольку вы уже загрузили их (находятся в кэше сеанса), а записи таблицы ссылок удалены и вставлены в любом случае, это будет иметь значение, только если ничего не будет удалено.1004 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...