这周我正在努力掌握 EF,到目前为止我还不错,但我刚刚遇到了我的第一个主要障碍。我有一个项目表和一个类别表。每个项目都可以用许多类别“标记”,所以我创建了一个链接表。两列,一列是项目的主要 ID,另一列是类别的主要 ID。我手动向数据库添加了一些数据,我可以在我的代码中通过 EF 很好地查询它们。
现在我想用现有类别之一“标记”一个新项目。我有要添加的类别 ID 和项目的 ID。我使用 linq 将两者都加载为实体,然后尝试以下操作。
int categoryToAddId = Convert.ToInt32(ddlCategoriesRemaining.SelectedValue);
var categoryToAdd = db.CollectionCategorySet.First(x => x.ID == categoryToAddId);
currentCollectionItem.Categories.Add(categoryToAdd);
db.SaveChanges();
但我得到“无法更新 EntitySet 'collectionItemCategories',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。”
我错过了什么吗?这不是正确的方法吗?我尝试同样的方法来移除,但也没有运气。