更新子实体实体框架
问题描述:
嗨在这里,我们在这里我们另一个实体框架问题和更新子实体。
该场景:
我有一个名为客户的对象,有评估和每周评估。客户创建并保存正确,但是评估(子实体)不附加并添加到数据库中。更新子实体实体框架
public SHAID.DataLayer.Client Save(SHAID.DataLayer.Client client)
{
System.Data.EntityKey key;
object originalItem;
using (_shaidEntities = new DataLayer.SHAIDEntities())
{
key = _shaidEntities.CreateEntityKey("Clients", client);
if (_shaidEntities.TryGetObjectByKey(key, out originalItem))
{
foreach (var item in client.Assessments)
{
if (item.Id == default(int))
{
item.Client.Id = client.Id;
}
}
_shaidEntities.ApplyCurrentValues(key.EntitySetName, client);
//client.WeeklyAssessments.Load();
//client.Assessments.Load();
}
else
{
_shaidEntities.AddToClients(client);
}
_shaidEntities.SaveChanges();
}
return client;
}
客户对象贴有评估和客户参考编号是alreeady用正确的ID
我已经尝试了不同的解决方案时,我遍历的评估集合(ADDOBJECT,附加),但每次填充背景抱怨它已经连接
请帮
非常感谢
安德鲁
答
通过创建新评估并将它们添加到originalItem中来管理排序。编辑现有评估是简单的将originalItem列表中找到并更新
只好取消注释client.WeeklyAssessments andclient.Assessments找回充满标识对子实体