일반 asp_user 테이블에 "settings"테이블을 추가 한 데이터 레이어에서 linq을 사용하여 SQL에 연결할 수 있습니다. 이 설정 테이블에서 나는 하나가 선호 단위 (Units 테이블에 대한 외래 키) 인 여러 레코드를 유지합니다.Linq to SQL 업데이트를 사용하면 중복 레코드가 생성됩니다.
이제이 선호 단위가 리터 단위에서 킬로그램 단위로 변경되어야 할 때 UnitService를 호출하여 정확한 단위 인스턴스를 가져오고 내 설정을 설정합니다.이 예에서는이 단위를 호출합니다. 이것은 데이터베이스에 새로운 (중복 된) 아이템을 만듭니다 (이제 Units 테이블에 2 킬로그램의 레코드가 있습니다). 이것은 물론 내가 의도 한 것이 아닙니다. 내가 AccountService.SaveuserSetting
는 무엇입니까
UserSetting setting = AccountService.GetUserSetting(user.Identity.Name);
if (setting.PreferedUnitId != unitId)
setting.Unit = UnitService.GetUnitById(unitId);
AccountService.SaveuserSetting(setting);
네, 맞습니다. 아마 그걸 고쳐 줄거야. –