The Member with Identity 'Faseprojeto_fase_target' does not exist in the Metadata Collection

Asked

Viewed 96 times

0

I’m making a very strange mistake... I don’t have a clue.

This is my class:

 public class FaseProjeto
{
    public int IdProjeto { get; set; }
    public int IdFase { get; set; }
    public virtual Projeto Projeto { get; set; }
    public virtual FaseModelo Fase { get; set; }
    public DateTime DataInicio { get; set; }
    public DateTime DataFim { get; set; }
    public StatusProjetoFase Situacao { get; set; }
    public string Observacao { get; set; }

}

This is her mapping:

public FaseProjetoMap()
    {

        // Define nome da Tabela
        ToTable("FaseProjeto");

        // Chave primária composta
        HasKey(po => new { po.IdProjeto, po.IdFase });

        // Properties
        Property(t => t.IdProjeto)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        Property(t => t.IdFase)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        Property(t => t.IdProjeto).HasColumnName("Projeto_Id");
        Property(t => t.IdFase).HasColumnName("Fase_Id");


        HasRequired(fp => fp.Projeto)
            .WithMany(p => p.Fases)
            .HasForeignKey(f=>f.IdProjeto);

        HasRequired(fp => fp.Fase)
            .WithMany()
        .HasForeignKey(f=>f.IdFase);

    }

Then I have this class that inherits from project phase:

 public class FaseProjetoPlanejamento : FaseProjeto
{

    public virtual OrgaoPublico Orgao { get; set; }

    public virtual ObjetoLicitacao Objeto { get; set; }

    public virtual LocalizacaoObra Localizacao { get; set; }

    public virtual IEnumerable<Documento> Documentos 
    {
        get
        {
            return this.Projeto.GetDocumentos();
        }
    }

    public virtual NCode.Orcamento.Model.Ent.Orcamento Orcamento 
    {
        get
        {
            return this.Projeto.GetOrcamento();
        }
    }

    public override FaseModelo Fase
    {
        get { return ModeloProjetoObraSetorPublico.FasePlanejamento; }
        set { }
    }


}

When I go to save this class with EF returns me the following error:

The Member with Identity 'Faseprojeto_fase_target' does not exist in the Metadata Collection. Parameter name: Identity

1 answer

0

Could debug and tell which line exactly gives the error rs, I believe something is with the incorrect name in your mapping or is not correctly filling the entity, check again in this part of your code:

    HasRequired(fp => fp.Projeto)
        .WithMany(p => p.Fases)
        .HasForeignKey(f=>f.IdProjeto);

    HasRequired(fp => fp.Fase)
        .WithMany()
    .HasForeignKey(f=>f.IdFase);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.