EF多对多现有对象

时间:2012-05-24 15:34:54

标签: c# entity-framework foreign-keys

我有以下数据库表:

文档 国家(从未添加到) DocumentLanguage

DocumentLanguage是Country和Document之间仅包含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属性。

可能有一个非常明显的解决方案,我尝试使用附加,使用存根对象,但必须有一个简单的解决方案,因为我确定我不是第一个有这个要求的人!

1 个答案:

答案 0 :(得分:0)

使用AddObject保存对象时,您的文档是否已存在于数据库中? AddObject仅用于添加新对象,而不是更新现有对象