gpt4 book ai didi

c# - 在不创建该对象的新实例的情况下编辑 list 中的对象?

转载 作者:行者123 更新时间:2023-12-02 22:34:41 26 4
gpt4 key购买 nike

我正在 EF4.1 Code First 中创建一个数据库。我有一张表 MedicalPlan,它与 CoverageLevel 具有一对多关系。 CoverageLevel 主键递增。当我创建 MedicalPlan 时,我声明了覆盖级别并创建了这些表,如下所示:

medicalPlan.CoverageLevels = new List<CoverageLevel>();
medicalPlan.CoverageLevels.Add(new CoverageLevel() { Cost = 1200, Description = "single" });
medicalPlan.CoverageLevels.Add(new CoverageLevel() { Cost = 1500, Description = "spouse" });
medicalPlan.CoverageLevels.Add(new CoverageLevel() { Cost = 1100, Description = "family" });

我还有一个更新功能,可以更新医疗计划。我还想要更新 MedicalPlan 的 CoverageLevels 的功能。在伪代码中,类似于:

in medicalPlan edit first item in CoverageLevels() { Cost = 1500 };

关键是我实际上并不想替换 CoverageLevel,因为它有一个唯一的自动递增主键,所以如果我创建一个新的,它将有一个不同的主键比原来的。有没有办法按照我尝试的方式做到这一点?

最佳答案

您可以在 EF 上下文中改变实体或相关实体,保存更改应该可以正确处理所有更新,而无需创建新条目:

// get EF Context
var firstCoverage = myMedicalPlan.CoverageLevels.FirstOrDefault();
if (firstCoverage != null) firstCoverage.Cost = 1500;
// save changes

关于c# - 在不创建该对象的新实例的情况下编辑 list<objects> 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com