0

私は EF を学習していますが、ナビゲーションに問題があります。皆さんが私に道を教えてくれることを願っています:)

このコードを実行すると、EF は次のメッセージを表示します。

System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.MissingMethodException: メソッドが見つかりません: 'System.Collections.Generic.List`1 Sis.Model.Ft1Cap300.get_Ft1Cap300l()'."

問題がどこにあるのか本当にわかりません。私のナビゲーション プロパティは問題ないと思いますが、EF は Ft1Cap300.Ft1Cap300l プロパティを認識しないと言います。

私は3つのモデルエンティティを持っています。クラスとその構成を投稿します

public class Ft1Caratula
{
    [Key]
    public String EncuestaId { get; set; }
    public Int32 DistritoId { get; set; }       //fk
    public String Conglomerado { get; set; }
    [Required]
    public Int32 Area { get; set; }
    [Required]
    public Int32 NumHogar { get; set; }
    [Required]
    public Int32 TotHogar { get; set; }
    public Int32 TipoComunidad { get; set; }
    [Required]
    public String JefeNombres { get; set; }
    [Required]
    public String JefeApePat { get; set; }
    [Required]
    public String JefeApeMat { get; set; }
    public Int32 DirTipo { get; set; }
    public String DirDireccion { get; set; }
    public Nullable<Int32> Dir1 { get; set; }
    public String Obs { get; set; }
    public Int32 Idioma { get; set; }
    public String Idioma_o { get; set; }
    [Required]
    public DateTime Ent1Fecha { get; set; }
    [Required]
    public Int32 Ent1Res { get; set; }
    public String Ent1Res_o { get; set; }
    public String EncId { get; set; }           
    public DateTime EncFecha { get; set; }

    public virtual UbiDistrito Distrito { get; set; }
    public virtual SegTecnico Encuestador { get; set; }

    public virtual List<Ft1Cap100> Ft1Cap100 { get; set; }
    public virtual List<Ft1Cap300> Ft1Cap300 { get; set; }
}

public class Ft1Cap300
{
    public String EncuestaId { get; set; }
    [Required]
    public int P301 { get; set; }

    public virtual Ft1Caratula Ft1Caratula { get; set; }
    public virtual List<Ft1Cap300l> Ft1Cap300l { get; set; }
}

public class Ft1Cap300l
{
    public String EncuestaId { get; set; }
    public int NOrden { get; set; }
    public String P302 { get; set; }
    [Required]
    public int P303 { get; set; }
    [Required]
    public int P304 { get; set; }
    public String P305_1 { get; set; }
    public String P305_2 { get; set; }
    public String P305_3 { get; set; }

    public virtual Ft1Cap300 Ft1Cap300 { get; set; }
}

public class Ft1CaratulaConfiguracion : EntityTypeConfiguration<Ft1Caratula>
{
    public Ft1CaratulaConfiguracion()
    {
        ToTable("ft1caratula", "data");
        HasRequired(p => p.Encuestador).WithMany(l => l.Ft1Caratulas).HasForeignKey(p => p.EncId);
        HasRequired(p => p.Distrito).WithMany(l => l.Ft1Caratulas).HasForeignKey(p => p.DistritoId);
    }
}

public class Ft1Cap300Configuracion : EntityTypeConfiguration<Ft1Cap300>
{
    public Ft1Cap300Configuracion()
    {
        ToTable("ft1cap300", "data");
        HasKey(p => new { p.EncuestaId });
        HasRequired(p => p.Ft1Caratula).WithMany(l => l.Ft1Cap300).HasForeignKey(p => p.EncuestaId);

    }
}

public class Ft1Cap300lConfiguracion : EntityTypeConfiguration<Ft1Cap300l>
{
    public Ft1Cap300lConfiguracion()
    {
        ToTable("ft1cap300l", "data");
        HasKey(p => new { p.EncuestaId, p.NOrden });
        HasRequired(p => p.Ft1Cap300).WithMany(l => l.Ft1Cap300l).HasForeignKey(p => p.EncuestaId);
    }
}

これで私を助けてくれることを願っています。私はガイドとして「プログラミング EF: CodeFirst」という本を持っています。

4

1 に答える 1

0

あなたのコードには現在、次の問題があります

public class Ft1CaratulaConfiguracion : EntityTypeConfiguration<Ft1Caratula>
    {
        public Ft1CaratulaConfiguracion()
        {
            ToTable("ft1caratula", "data");
            HasRequired(p => p.Encuestador).WithMany(l => l.Ft1Caratulas).HasForeignKey(p => p.EncId);
            HasRequired(p => p.Distrito).WithMany(l => l.Ft1Caratulas).HasForeignKey(p => p.DistritoId);
        }
    }

Encuestadorクラス Ft1Caratula にはプロパティおよびがありませんDistrito

さらに

public virtual List<Ft1Cap100> Ft1Cap100 { get; set; }

プロパティをタイプとして使用しています。したがって、コンパイル時エラーが発生するはずです。

于 2013-01-15T05:26:43.257 に答える