5
我有以下两个实体(其中许多,但这些给我的问题)EF 4.1代码第一次外键增加了额外的列
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作为我的外键。
是啊,当然了,不知道为什么我没有想到这一点。谢谢。 – Dirk
谢谢拉迪斯拉夫!受益于你的许多答案,包括这一个。只有观察,这个问题是间歇性的(我的同事并没有被迫提供WithMany中的任何东西,但是我必须......(你应该得到EF上的MVP :)) –