我在实体框架中使用SelfTracking。
问题在于,当我保存数据时一切正常但是当我第二次保存它想要添加新对象但是我只想更新旧对象或者如果没有修改那么就不要做任何事情。
我将在下面描述:
我有用户实体。我创建它,做某事然后我创建了Context,Save it和destroy Context但是User并没有被破坏。
一切正常,用户保存在数据库中。然后我调用相同的方法。创建新的上下文,保存并且存在重复的密钥违规(它不知道它必须更新用户但是尝试插入它)。
Context.User.ApllyChanges(MYUSER); Context.SaveChanges();
我尝试了不同的变化,每次出现相同的错误。我做错了什么?
感谢您的帮助。
当我点击“保存”时,会创建新的上下文,但我拥有与之相同的EntityObject。然后它想要添加新对象
答案 0 :(得分:1)
我曾与POCO合作过(不是自我跟踪),但我相信它也适用。
问题是您必须知道它是否为New或Update并将对象添加到上下文并将其状态更改为modified。如果您将其保留为添加,EF将尝试将其插入数据库。