I'm having a very strange error ... I do not make the least of it.
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 the mapping of it:
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 the 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 save this class with EF I get the following error:
The member with identity 'Phase_Target_Project' does not exist in the metadata collection. Parameter name: identity