Я использую linq to sql в своем слое данных, где я добавил таблицу "settings" в обычную таблицу asp_user.
В этой таблице настроек я храню несколько записей, одна из которых является предпочтительной единицей (внешний ключ к таблице единиц).
Теперь, когда этот предпочтительный юнит должен измениться (скажем, с литра на килограмм), я вызываю мой UnitService, чтобы получить правильный экземпляр юнита и установить мои настройки.
Это создает новый (дублирующий) элемент в базе данных (теперь в моей таблице Units есть две килограммовые записи). Это, конечно, не то, что я хотел.
У меня такое чувство, что я делаю кучу фундаментальных вещей неправильно
UserSetting setting = AccountService.GetUserSetting(user.Identity.Name);
if (setting.PreferedUnitId != unitId)
setting.Unit = UnitService.GetUnitById(unitId);
AccountService.SaveuserSetting(setting);