我正在使用实体框架和代码优先使用一个项目。这里是我缩短的类我的课在数据库中创建条目,我希望它停止
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();
如果您知道在数据库中创建重复条目的方法,请在创建数据库之前确认它不存在。 – 2012-07-31 18:00:20