我有以下两个实体(在许多实体中,但它们给我带来了问题)
public class StartPoint
{
public int StartPointId { get; set; }
public string Description { get; set; }
public int StartPointNumber { get; set; }
public int StartAreaId { get; set; }
public StartArea StartArea { get; set; }
}
和
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
当允许EF创建我的数据库时,它抱怨我需要关闭级联删除,因为有多个路径,我已经这样做了。
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
问题是,当创建数据库时,我会得到两个外键,一个是我所期望的StartAreaId,另一个是StartArea_StartAreaId。仅使用StartAreaId。为什么以及如何摆脱StartArea_StartAreaId。如果我删除上下文中的HasForeignKey并从实体中删除StartAreaId,则会得到多个StartArea_StartAreaId列,如StartArea_StartAreaId和StartArea_StartAreaId1中所示。我需要做什么才能阻止这种情况的发生?我只想让StartAreaId作为我的外键。
发布于 2011-06-27 08:09:53
问题是WithMany
为空
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany(y => y.StartPoints)
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
https://stackoverflow.com/questions/6490111
复制相似问题