我有一个我无法解决的问题...... 使用实体框架,我有2个对象:
Opérateurs:
public partial class Opérateurs
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Opérateurs()
{
Domaines = new HashSet<Domaines>();
Contacts = new HashSet<Contacts>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int IdOpérateurs { get; set; }
[StringLength(30)]
public string Adresse { get; set; }
[StringLength(10)]
public string CodePostal { get; set; }
[StringLength(25)]
public string Ville { get; set; }
[Required]
[StringLength(30)]
public string Société { get; set; }
[StringLength(60)]
public string Email { get; set; }
[StringLength(20)]
public string Fixe { get; set; }
[StringLength(20)]
public string Mobile { get; set; }
public Boolean isActifDansCaveAVin { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Domaines> Domaines { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Contacts> Contacts { get; set; }
}
}
和Domaines:
public partial class Domaines
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Domaines()
{
Vins = new HashSet<Vins>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int idDomaine { get; set; }
[Required]
[StringLength(200)]
public string NomDomaine { get; set; }
public int idOpérateur { get; set; }
public virtual Opérateurs Opérateurs { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Vins> Vins { get; set; }
}
我可以添加Opérateur(太棒了!)但我无法添加Domaines: - (
这是我的单元测试:
[TestMethod]
public void AjouterDomaine()
{
using (CaveAVinContext context = new CaveAVinContext())
{
Opérateurs operateur = context.Opérateurs.Find(500111);
Domaines domaine = new Domaines();
domaine.idDomaine = 5;
domaine.Opérateurs = operateur;
domaine.NomDomaine = "domaine Eric test";
context.Domaines.Add(domaine);
SaveChanges(context);
}
}
这样做,我得到一个DbUpdateException(没有任何指示:-() 注意:我也在评论中试过这一行(domaine.idDomaine = 5;)=&gt;相同的结果
怎么了?
答案 0 :(得分:0)
我认为有两件事是错的:
您在自动生成的字段上设置了Id字段,并且您可以在域中添加两次,在行上:
domaine.Opérateurs = operateur;
和
context.Domaines.Add(domaine);
尝试:
删除:domaine.Opérateurs = operateur;
添加:domaine.OpérateursId = operateur.OpérateursId;
保持context.Domaines.Add(domaine);
如果可行,我将在此答案中添加更多解释。