我正在使用实体框架和代码进行项目。这是我的缩短课程
public class BenefitsForm : IAnnualForm, IAuditable
{
public BenefitsUser UserInfo { get; set; }
public CoverageLevel Medical { get; set; }
}
public class MedicalPlan : IHealthPlan
{
public int Id { get; set; }
public virtual IList<CoverageLevel> CoverageLevels { get; set; }
}
public class CoverageLevel
{
public int Id { get; set; }
public virtual MedicalPlan MedicalPlan { get; set; }
}
每个 MedicalPlan 有 4 个承保级别。我已经在数据库中制定了我的覆盖水平和医疗计划。但是,当我创建我的 BenefitsForm 时,它会为这些类创建重复的条目(我已经在数据库中拥有它们)。我怎样才能防止它这样做?这是一个小代码片段来展示它是如何发生的。
BenefitsForm form = new BenefitsForm() { UserInfo = new BenefitsUser() };
using(var repo = new CoverageLevelRepository())
{
form.Medical = repo.Retrieve(new NumericKey(formId))); //this retrieves the coveragelevel with the id I want.
}
formRepository.Create(form); // this creates a duplicate med plan and 4 duplicate coverage levels.
formRepository.SaveChanges();