[英]Entity Framework updating two tables with one to many relationship
我首先使用EF代码来控制我的数据。 我有两个模型, ElectricitySite
和ElectricitySiteSplit
。
ElectricitySite
包含List<ElectricitySiteSplits> ElectricitySiteSplits
,这是一对多的关系。
我正在尝试为存储库层编写我的Update方法,该方法将处理两个表,到目前为止,我有:
public void UpdateElectricitySite(ElectricitySite updatedElectricitySite)
{
var dbElectricitySite = GetElectricitySite(updatedElectricitySite.ElectricitySiteId);
_context.ElectricitySites.Attach(updatedElectricitySite);
_context.Entry(updatedElectricitySite).State = EntityState.Modified;
_context.SaveChanges();
}
单击“保存”按钮时出现以下错误:
附加类型为'MySolution.Repo.ElectricityModels.ElectricitySiteSplit'的实体失败,因为相同类型的另一个实体已经具有相同的主键值。 如果图形中的任何实体具有相互冲突的键值,则使用“附加”方法或将实体的状态设置为“不变”或“修改”时,可能会发生这种情况。 这可能是因为某些实体是新实体,尚未收到数据库生成的键值。 在这种情况下,请使用“添加”方法或“已添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。
我认为这是因为我尚未附加ElectricitySiteSplit
实体,但是如果将其添加到ElectricitySites附件下方,则可以:
_context.ElectricitySiteSplits.Attach(updatedElectricitySite.SiteSplits);
我收到此错误:
严重性代码说明项目文件行抑制状态错误CS1503参数1:无法从“ System.Collections.Generic.List”转换为“ UtilityBilling.Repo.ElectricityModels.ElectricitySiteSplit”
如何处理以清单形式包含在updatedElectrcitiySite.SiteSplits
的ElectricitySiteSplits
表更新。
仅供参考-我已经在这里查看了:
EF不会自动处理两个表。 我必须指定添加/更新/删除的项目。 看看这个线程干净地更新Entity Framework中的层次结构
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.