gpt4 book ai didi

c# - self 跟踪实体 SaveChanges() 在多对多关系中添加实体时出现异常

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:53 25 4
gpt4 key购买 nike

我有 2 个实体对象“Persons”和“Seminar”。关系 - 多对多。一个项目包括 - EF4.0/STE、WCF 和 WinForms。

当我尝试将人员添加到研讨会时

 public void AddPersonsToSeminar(Seminar seminar, List<Person> persons)
{
using (T3EntitiesConn context = new T3EntitiesConn())
{
if (seminar != null)
{
context.Seminar.Attach(seminar);

foreach (Person person in persons)
{
if (!seminar.Person.Any(p => p.ID == person.ID))
{
seminar.Person.Add(person);
context.Seminar.ApplyChanges(seminar);
}
}
context.SaveChanges();

我有异常(exception) -

The property 'ID' is part of the object's key and cannot be changed. Changes to key properties can only be made when the object is not being tracked or is in the Added state.

请解释如何修复它谢谢

最佳答案

这可能是您的研讨会和人员来自不同的对象上下文并且您正在创建新上下文的问题。您正确地将研讨会附加到该上下文,但您是将人员从旧上下文添加到新创建的上下文?

关于c# - self 跟踪实体 SaveChanges() 在多对多关系中添加实体时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com