实体框架插入而不是更新

时间:2014-09-23 12:32:14

标签: entity-framework

我有一个项目,其中一个属性是country是一个对象,我想我应该可以执行下面的代码。

var Post = new Post();

country = simpleRepository.GetCountries().FirstOrDefault(c => c.CountryId == postViewModel.PostAddress.CountryId); 

post.PostAddress.Country = country;

allThingsEntities.Posts.Add(post);

不幸的是,当我这样做时,我收到了这个错误:

  

IEntityChangeTracker的多个实例

无法引用实体对象

当我将post.PostAddress.Country = country;更改为post.PostAddress.CountryId = country.countryId时,系统会抛出错误,因为它似乎尝试创建新的国家/地区。

1 个答案:

答案 0 :(得分:0)

该错误意味着您有多个数据上下文实例。您可能会做这样的事情,只维护一个实例。从您的Repos中调用它。

public DataContext Get()
{
    return _dataContext ?? (dataContext = new DataContext());
}