我有一个屏幕,用户可以在其中选择要订阅的类别。他们可以选择零到多个类别。这些存储在UserCategory表中,该表具有用户ID和类别ID。
因此,如果用户从8个类别中选择2个,我会写两行,其中包含类别ID和用户ID。
(他现在被分配到两个类别)
但是,如果用户返回并取消选择其中一个类别,然后添加2个不同的类别,则现在将其分配给3个类别......
但是我不确定在linq中处理这个问题的好方法...不知何故,我需要做一些事情......删除UserCategories,其中userId =:UserId和CategoryId NOT IN int []类别ID传入....然后我需要INSERT INTO UserCategories ... int []类别ID,但不是已经存在的那些。
我需要在Linq中使用实体框架来完成...有人可以帮忙吗?
答案 0 :(得分:2)
最简单的解决方案可能是从所有当前类别中删除用户,然后重新添加到仍然选中的用户。虽然您可能会再次删除并添加相同的信息,但它可以使代码更简单,更简单的代码更易于维护。
因此,您将从数据库中读取当前信息并在表单上显示该信息。然后,当用户点击“确定”时清除数据库中的当前信息(当然将副本保存在内存中),然后将其添加回来,就好像这是第一次通过代码一样。