同様の質問はどれも、この問題を解決できないようです。VS 2012 で設計された Web アプリに Entity Framework 5、MVC 4、.NET 4.5 を使用しています。
私は親子関係にあるはずの2つのクラスを持っています。
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
// Other stuff
public int? JoggerId { get; set; }
public virtual Jogger Jogger{ get; set; }
}
と
public class Jogger
{
[Key]
public int JoggerId { get; set; }
[Required, ForeignKey("UserId")]
public int UserId { get; set; }
public virtual UserProfile UserProfile { get; set; }
}
Fluent API の場合:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<UserProfile>()
.HasOptional(x => x.Jogger)
.WithRequired(c => c.UserProfile)
.WillCascadeOnDelete(true);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
ユーザーは Jogger になることができますが、Jogger になることもできません。関係は EF Powertools edmx ビューでは問題ないように見えますが、外部キーを UserProfile UserId と連携させることができません。
私のFluent APIは間違っていますか、それとも私のモデルですか? 助けてください - 私は本当に立ち往生しています!