1

同様の質問はどれも、この問題を解決できないようです。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は間違っていますか、それとも私のモデルですか? 助けてください - 私は本当に立ち往生しています!

4

1 に答える 1