我在我的数据层使用linq到sql,我在常规的asp_user表中添加了“settings”表。 在这个设置表中,我保留了几个记录,其中一个是首选单元(单位表的外键)。
现在当这个首选单元需要更改时(比如从升到千克),我调用我的UnitService来获取正确的单元实例并将我的setting.PreferedUnit设置为此实例。 这会在数据库中创建一个新的(重复)项目(我的Units表中现在有两公斤的记录)。这当然不是我的意图。
我感觉我做了一堆基本的错误
UserSetting setting = AccountService.GetUserSetting(user.Identity.Name);
if (setting.PreferedUnitId != unitId)
setting.Unit = UnitService.GetUnitById(unitId);
AccountService.SaveuserSetting(setting);
答案 0 :(得分:1)
AccountService.SaveuserSetting
做什么?它可能正在做一个不必要的InsertOnSubmit
。
答案 1 :(得分:1)