EF 多对多现有对象
本文关键字:对象 EF | 更新日期: 2023-09-27 18:35:25
我有以下数据库表:
公文国家/地区(从未添加到)文档语言
文档语言是国家/地区和文档之间的链接表,仅包含 ID。实体设计器(正确)将此属性添加为导航属性。
我的代码如下:
public void IdentifyLanguages(List<Country> languages)
{
foreach (Country c in languages)
{
foreach (var languageIdentifier in c.LanguageIdentifiers)
{
if (document.DocumentText.ToLower().Contains(languageIdentifier.LanguageIdentifier1.ToLower()))
{
document.Countries.Add(c);
break;
}
}
}
}
并稍后保存对象:
context.Document.AddObject(_document);
context.SaveChanges();
我收到以下错误:
仅当属性的当前值为 null 时,才能设置 EntityKey 属性。
可能有一个非常明显的解决方案,我已经尝试使用附加,使用存根对象,但必须有一个简单的解决方案,因为我相信我不是第一个有这个要求的人!
使用 AddObject 保存对象时,您的文档是否已存在于数据库中? AddObject 仅用于添加新对象,而不用于更新现有对象