我試圖更新現有實體的EntityCollection已經初始化
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;
The
EntityCollection
has already been initialized. TheInitializeRelatedCollection
method should only be called to initialize a newEntityCollection
during deserialization of an object graph.
更新:
我試過了@格特的方式:
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);
}
,並出現以下錯誤:
僅加入clear
和add
命令
操作失敗:關係不能被改變,因爲一個或多個外鍵的屬性是非空的。當對關係進行更改時,相關的外鍵屬性將設置爲空值。如果外鍵不支持空值,則必須定義新的關係,必須爲外鍵屬性指定另一個非空值,或者必須刪除不相關的對象。
是'MamConfigurationToBrowser_V1'和'MamConfigurationToGroups_V1'一個'名單<>'驗證這一點? – haim770 2013-04-21 07:37:35
EntityCollections – 2013-04-21 07:51:38
您必須從集合中添加礦石移除項目。不能取代它們。 – 2013-04-21 08:11:50