我正在尝试更新现有的实体

private void UpdateEfItem(MamConfiguration_V1 itemFromDb, MamConfiguration_V1 item)
{
    itemFromDb.UpdatedDate = DateTime.Now;
    itemFromDb.Description = item.Description;


   //references
   itemFromDb.MamConfigurationToBrowser_V1 = item.MamConfigurationToBrowser_V1;
   itemFromDb.MamConfigurationToGroups_V1 = item.MamConfigurationToGroups_V1;
}

当将ui项分配给ef项时,出现以下错误:
itemFromDb.MamConfigurationToBrowser_V1 = item.MamConfigurationToBrowser_V1;

EntityCollection已经初始化。这个
InitializeRelatedCollection只应在初始化时调用方法
对象图反序列化期间的新EntityCollection
更新:
我试过格特的方法:
    private void UpdateEfItem(MamConfiguration_V1 itemFromDb, MamConfiguration_V1 item)
    {
        itemFromDb.UpdatedDate = DateTime.Now;

        itemFromDb.Description = item.Description;

        itemFromDb.StatusId = item.StatusId;

        itemFromDb.Name = item.Name;

        itemFromDb.NumericTraffic = item.NumericTraffic;

        itemFromDb.PercentageTraffic = item.PercentageTraffic;

        itemFromDb.Type = item.NumericTraffic;



        itemFromDb.MamConfigurationToBrowser_V1.Clear();

        for (int i = 0; i < item.MamConfigurationToBrowser_V1.Count; i++)
        {
            var elementToAdd = item.MamConfigurationToBrowser_V1.ElementAt(i);

            elementToAdd.Browser = mMaMDBEntities.Browsers.Single(browserItem => browserItem.BrowserID == elementToAdd.BrowserID);

            elementToAdd.MamConfiguration_V1 = itemFromDb;

            itemFromDb.MamConfigurationToBrowser_V1.Add(elementToAdd);
        }

并得到以下错误:
仅当添加clearadd命令时
操作失败:无法更改关系,因为一个或多个外键属性不可为空。对关系进行更改时,相关外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。

最佳答案

尝试:

itemFromDb.MamConfigurationToBrowser_V1.Clear();

foreach (var item in item.MamConfigurationToBrowser_V1)
{
     itemFromDb.MamConfigurationToBrowser_V1.Add(item);
}

08-06 16:41