Вы можете просто удалить столбец внешнего ключа из сопоставления, и все будет работать нормально:
public class Child{
public int pID { get; set; }
public Parent Parent_Object{ get; set; }
public Child() { }
}
public class Parent {
public int pID { get; set; }
public List Children { get; set; }
public Parent () { }
}
public class Context : DbContext {
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) {
modelBuilder.Entity().HasKey(c => c.pID);
modelBuilder.Entity().HasKey(c => c.pID);
modelBuilder.Entity().HasOptional(c => c.Parent_Object).WithMany(p => p.Children);
}
public DbSet Parents { get; set; }
public DbSet Childs { get; set; }
}
В качестве альтернативы вы можете использовать свойство Nullable int Parent, например:
public int? ParentId { get; set; }
В этом случае ваш первоначальный код также будет правильным.