Entity Framework error mapping classes from existing database

Asked

Viewed 106 times

0

I have an SQL Server database and had the mapping classes automatically generated from the existing database. However, when I run the application, it gives the following error:

(404,10) : error 3015: Problem in Mapping Fragments Starting at Lines 46, 404: Foreign key Constraint 'PROCESSO_EMPRESA_ORDEM_SERVICO' from table ORDEM_SERVICO (COD_EMPRESA, COD_PROCESSO) to table PROCESO_EMPRESA (COD_PROCESSO, COD_EMPRESA):: Insufficient Mapping: Foreign key must be Mapped to some Associationset or Entitysets Participating in a Foreign key Association on the conceptual side.

The classes ORDEM_SERVICO and PROCESSO_EMPRESA below:

public partial class ORDEM_SERVICO
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public ORDEM_SERVICO()
    {
      FALTA_PECA = new HashSet<FALTA_PECA>();
      MENSAGEM = new HashSet<MENSAGEM>();
      ORDEM_SERVICO_ACESSOS = new HashSet<ORDEM_SERVICO_ACESSOS>();
      ORDEM_SERVICO_HISTORICO = new HashSet<ORDEM_SERVICO_HISTORICO>();
      ORDEM_SERVICO_HISTORICO_REPLANEJAMENTO = new HashSet<ORDEM_SERVICO_HISTORICO_REPLANEJAMENTO>();
    }

    [Key]
    [Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]    
    public int COD_EMPRESA { get; set; }

    [Key]
    [Column(Order = 1)]
    public DateTime DAT_INCLUSAO { get; set; }

    [Key]
    [Column(Order = 2)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int COD_USUARIO_CADASTRO { get; set; }

    [StringLength(15)]
    public string NUM_OS { get; set; }

    [StringLength(20)]
    public string DSC_NRO_DOCUMENTO_CLIENTE { get; set; }


    public int COD_PROCESSO { get; set; }

    public int? IND_SITUACAO { get; set; }

    [StringLength(1)]
    public string IND_TIPO_OS { get; set; }

    [StringLength(1)]
    public string IND_TIPO_SERVICO { get; set; }

    public int? COD_ETAPA_ATUAL { get; set; }

    public int? COD_ETAPA_ATUAL_SITUACAO { get; set; }

    public int? COD_IMPEDIMENTO_ATUAL { get; set; }

    public int? COD_SEGURADORA { get; set; }

    public DateTime? DAT_ENTRADA { get; set; }

    public DateTime? DATA_AUTORIZACAO { get; set; }

    public int? DIAS_PREVISAO_SAIDA { get; set; }

    public DateTime? DAT_PREVISAO_SAIDA { get; set; }

    public DateTime? DAT_SAIDA { get; set; }

    public int? COD_CONSULTOR { get; set; }

    [Column(TypeName = "text")]
    public string DSC_PENDENCIA_CADASTRO { get; set; }

    public DateTime? DAT_ALTERACAO { get; set; }

    [StringLength(1)]
    public string IND_ATIVO { get; set; }

    [StringLength(31)]
    public string COD_OS { get; set; }

    public DateTime? DAT_SINCRONISMO { get; set; }

    public int? COD_MOTIVO_ATRASO { get; set; }

    [StringLength(2)]
    public string IND_SITUACAO_ENTREGA { get; set; }

    [StringLength(1)]
    public string TIPO_SEGURADORA { get; set; }

    [Column(TypeName = "money")]
    public decimal? VALOR_FRANQUIA { get; set; }

    [StringLength(20)]
    public string NUM_SINISTRO { get; set; }

    [StringLength(100)]
    public string NOME_CORRETOR { get; set; }

    public virtual CLIENTE CLIENTE { get; set; }

    public virtual CONSULTOR CONSULTOR { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<FALTA_PECA> FALTA_PECA { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<MENSAGEM> MENSAGEM { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<ORDEM_SERVICO_ACESSOS> ORDEM_SERVICO_ACESSOS { get; set; }

    public virtual ORDEM_SERVICO_CRM_PERIODICIDADE_RETORNO_CLIENTE ORDEM_SERVICO_CRM_PERIODICIDADE_RETORNO_CLIENTE { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<ORDEM_SERVICO_HISTORICO> ORDEM_SERVICO_HISTORICO { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<ORDEM_SERVICO_HISTORICO_REPLANEJAMENTO> ORDEM_SERVICO_HISTORICO_REPLANEJAMENTO { get; set; }

    [ForeignKey("COD_PROCESSO, COD_EMPRESA")]
    public virtual PROCESSO_EMPRESA PROCESSO_EMPRESA { get; set; }

    public virtual PROCESSO_ETAPA PROCESSO_ETAPA { get; set; }

    public virtual PROCESSO_ETAPA PROCESSO_ETAPA1 { get; set; }

    public virtual PROCESSO_IMPEDIMENTO PROCESSO_IMPEDIMENTO { get; set; }

    public virtual SEGURADORA SEGURADORA { get; set; }

    public virtual TIPO_SERVICO TIPO_SERVICO { get; set; }

    public virtual USUARIO USUARIO { get; set; }

    public virtual ORDEM_SERVICO_VEICULO ORDEM_SERVICO_VEICULO { get; set; }
}

public partial class PROCESSO_EMPRESA
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public PROCESSO_EMPRESA()
    {
        ORDEM_SERVICO = new HashSet<ORDEM_SERVICO>();
        PAINEL_CONTROLE = new HashSet<PAINEL_CONTROLE>();
        PROCESSO_ETAPA_EMPRESA_SLA = new HashSet<PROCESSO_ETAPA_EMPRESA_SLA>();
        PROCESSO_IMPEDIMENTO_EMPRESA_SLA = new HashSet<PROCESSO_IMPEDIMENTO_EMPRESA_SLA>();
        PROCESSO_SITUACAO_DATA_OS_EMPRESA_SLA = new HashSet<PROCESSO_SITUACAO_DATA_OS_EMPRESA_SLA>();
    }

    [Key]
    [Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int COD_PROCESSO { get; set; }

    [Key]
    [Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int COD_EMPRESA { get; set; }

    public DateTime? DAT_INCLUSAO { get; set; }

    public DateTime? DAT_ALTERACAO { get; set; }

    [StringLength(1)]
    public string IND_ATIVO { get; set; }

    public virtual EMPRESA EMPRESA { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<ORDEM_SERVICO> ORDEM_SERVICO { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<PAINEL_CONTROLE> PAINEL_CONTROLE { get; set; }

    public virtual PROCESSO PROCESSO { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<PROCESSO_ETAPA_EMPRESA_SLA> PROCESSO_ETAPA_EMPRESA_SLA { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<PROCESSO_IMPEDIMENTO_EMPRESA_SLA> PROCESSO_IMPEDIMENTO_EMPRESA_SLA { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<PROCESSO_SITUACAO_DATA_OS_EMPRESA_SLA> PROCESSO_SITUACAO_DATA_OS_EMPRESA_SLA { get; set; }
}

Remembering that the bank already exists and I can not modify it.

  • Diego, in your project it was database first right? If it was go to the diagram of generated by Entity right click and have it update, it can be this!

  • So, actually it was code first, I still don’t know how to fix it. I’ll try to create it again using database first to see if it works.

No answers

Browser other questions tagged

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