我正在使用Entity Framework构建我的数据库。我的模型包含两个实体:Entite
和ApplicationUser
(请参阅下面的代码)。
这些实体之间有两种关系:
Entite
可以包含一个或多个用户。用户属于Entite
。Entite
必须有一个用户作为负责人,而用户只能负责一个Entite
。Entite :
public class Entite : AuditableEntity<int>
{
[Required]
[MaxLength(10)]
public String code { get; set; }
[Required]
[MaxLength(50)]
public String Libelle { get; set; }
[Required]
[MaxLength(10)]
public String type { get; set; }
[Key, ForeignKey("ResponsableId")]
public int? ResponsableId { get; set; }
public virtual ApplicationUser responsable { get; set; }
public int? RattachementEntiteId { get; set; }
[Key, ForeignKey("RattachementEntiteId")]
public virtual Entite rattachement { get; set; }
public List<Entite> Children { get; set; }
}
ApplicationUser :
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Matricule { get; set; }
public DateTime? dateRecrutement { get; set; }
public int? entiteId { get; set; }
[ForeignKey("entiteId")]
public virtual Entite entite { get; set; }
}
当我尝试使用Add-Migration
命令构建数据库时,出现此错误:
无法确定类型之间关联的主要结尾
关于这个问题的任何想法?
感谢您的帮助
答案 0 :(得分:0)
它看起来像你的Entite模型类中的小错误/错误。
ForeignKey
应该引用您的ApplicationUser,目前它正在引用自己,并且将为responsable
生成一个新密钥。
如果我们将ForeignKey
引用交换到下面,那么这看起来应该可以解决您的问题:
[Key, ForeignKey("responsable")]
public int? ResponsableId { get; set; }
public virtual ApplicationUser responsable { get; set; }
或者您可以像在rattachement
上一样交换参考。
public int? ResponsableId { get; set; }
[Key, ForeignKey("ResponsableId ")]
public virtual ApplicationUser responsable { get; set; }