0

最初にエンティティフレームワークコードを使用して対応するテーブルマッピングを行う方法を教えてくれる人はいますか?これが私のテーブルです

ここにリンクの説明を入力してください

私はこれをやろうとしましたが、成功しませんでした。

[Table("Matiere")]
public class Matiere
{
    [Key]
    public Int32 Id { get; set; }
    public Int32? IdParent { get; set; }
    [Column("NomMatiere")]
    public String Nom { get; set; }
    public virtual Matiere Parent { get; set; }
    public virtual ICollection<Matiere> Childs { get; set; }
}

public class MatiereConfiguration : EntityTypeConfiguration<Matiere>
{
    public MatiereConfiguration()
    {
        this.HasOptional(m => m.Parent).WithMany(m => m.Childs).HasForeignKey(m => m.IdParent);
        this.HasOptional(m => m.Childs).WithRequired();
    }
}

前もって感謝します。

4

1 に答える 1

0

あなたは近くにいます。私はあなたが供給する必要はないと思いますHasOptional(m => m.Childs).WithRequired();

まず、DataAnnotationsとFluentマッピングを組み合わせて使用​​する代わりに、すべてのマッピング情報をMatiereConfigurationに配置します。必須ではありませんが、単なる提案です。

これは機能するはずです:

    public class MatiereConfiguration : EntityTypeConfiguration<Matiere>
    {
        public MatiereConfiguration()
        {
          HasKey(m => m.Id);
          Property(m => m.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
          Property(m => m.Nom).HasColumnName("NomMatiere")           
          HasOptional(m => m.Parent).WithMany(m => m.Childs).HasForeignKey(m => m.IdParent);

        }
    }
于 2012-05-11T01:13:27.347 に答える