[英]Entity framework is trying to find a deleted foreign key on database
我有一個具有其導航屬性的外鍵的實體,但是我從數據庫和模型中刪除了該外鍵以創建另一個。 現在,實體框架給了我一個錯誤,說我的模型缺少舊列。
這是我的模型:
public class CompraVenda
{
public CompraVenda()
{
this.Produtos = new HashSet<CompraVendaProdutoGrade>();
}
public long ID_CompraVenda { get; set; }
public long? ID_CondicaoPagamento { get; set; }
public long? ID_Fornecedor { get; set; }
public long? ID_Cliente { get; set; }
public long? ID_Funcionario { get; set; }
public long? ID_Pedido { get; set; }
public string Codigo { get; set; }
public int Tipo { get; set; }
public DateTime DataCadastro { get; set; }
public DateTime DataConfirmacao { get; set; }
public int Status { get; set; }
public string Observacoes { get; set; }
public decimal ValorTotal { get; set; }
public decimal ValorDesconto { get; set; }
public decimal AcrescimoTotal { get; set; }
public decimal ValorFrete { get; set; }
public int TipoDesconto { get; set; }
public int NumeroProdutos { get; set; }
public virtual CondicaoPagamento CondicaoPagamento { get; set; }
public virtual Fornecedor Fornecedor { get; set; }
public virtual Cliente Cliente { get; set; }
public virtual Funcionario Funcionario { get; set; }
public virtual Pedido Pedido { get; set; }
public virtual ICollection<CompraVendaProdutoGrade> Produtos { get; set; }
}
這是映射類:
public class CompraVendaMap : EntityTypeConfiguration<CompraVenda>
{
public CompraVendaMap()
{
this.ToTable("compravenda", "wildesk");
this.HasKey(t => t.ID_CompraVenda);
this.Property(t => t.ID_CompraVenda).HasColumnName("ID_CompraVenda");
this.Property(t => t.ID_Fornecedor).HasColumnName("ID_Fornecedor");
this.Property(t => t.ID_Cliente).HasColumnName("ID_Cliente");
this.Property(t => t.ID_Funcionario).HasColumnName("ID_Funcionario");
this.Property(t => t.ID_Pedido).HasColumnName("ID_Pedido");
this.Property(t => t.ID_CondicaoPagamento).HasColumnName("ID_CondicaoPagamento");
this.Property(t => t.Codigo).HasColumnName("Codigo");
this.Property(t => t.Tipo).HasColumnName("Tipo");
this.Property(t => t.DataCadastro).HasColumnName("DataCadastro");
this.Property(t => t.DataConfirmacao).HasColumnName("DataConfirmacao");
this.Property(t => t.Status).HasColumnName("Status");
this.Property(t => t.Observacoes).HasColumnName("Observacoes");
this.Property(t => t.ValorTotal).HasColumnName("ValorTotal");
this.Property(t => t.ValorDesconto).HasColumnName("ValorDesconto");
this.Property(t => t.AcrescimoTotal).HasColumnName("AcrescimoTotal");
this.Property(t => t.ValorFrete).HasColumnName("ValorFrete");
this.Property(t => t.TipoDesconto).HasColumnName("TipoDesconto");
this.Property(t => t.NumeroProdutos).HasColumnName("NumeroProdutos");
this.HasOptional(t => t.CondicaoPagamento).WithMany(t => t.ComprasVendas).HasForeignKey(t => t.ID_CondicaoPagamento);
this.HasOptional(t => t.Fornecedor).WithMany(t => t.ComprasVendas).HasForeignKey(t => t.ID_Fornecedor);
this.HasOptional(t => t.Cliente).WithMany(t => t.ComprasVendas).HasForeignKey(t => t.ID_Cliente);
this.HasOptional(t => t.Funcionario).WithMany(t => t.ComprasVendas).HasForeignKey(t => t.ID_Funcionario);
this.HasOptional(t => t.Pedido).WithMany(t => t.ComprasVendas).HasForeignKey(t => t.ID_Pedido);
this.HasMany(t => t.Produtos).WithRequired(t => t.CompraVenda).HasForeignKey(t => t.ID_CompraVenda);
}
}
錯誤:
“字段列表”中的未知列“ Extent1.FormaPagamento_ID_FormaPagamento”
我已經清理了解決方案,重新創建了數據庫,但沒有任何效果。
我注意到的一個想法是:如果我注釋當前是外鍵的屬性之一,則EF會給我該注釋屬性的相同錯誤。
EF是否讀取實體架構以在數據庫上查找外鍵? 或者,它使模型緩存?
提前致謝。
我發現了問題,我將在此處發布誰可能有相同問題的信息:
我忘了刪除FormaPagamento
上引用compravenda
的舊集合,該集合未映射但被設置為虛擬,因此EF試圖在compravenda
上找到一個等效的屬性。
我的舊版FormaPagamento
模型代碼:
public class FormaPagamento
{
public FormaPagamento()
{
this.ContasPagarReceber = new HashSet<ContaPagarReceber>();
this.Movimentacoes = new HashSet<ContaPagarReceberMovimentacao>();
this.ComprasVendas = new HashSet<CompraVenda>();
this.CondicoesPagamento = new HashSet<CondicaoPagamentoFormaPagamento>();
}
public long ID_FormaPagamento { get; set; }
public string Descricao { get; set; }
public bool IsAtivo { get; set; }
public bool IsSystem { get; set; }
public int? Enum { get; set; }
public virtual ICollection<ContaPagarReceber> ContasPagarReceber { get; set; }
public virtual ICollection<ContaPagarReceberMovimentacao> Movimentacoes { get; set; }
// When I removed this collection, it works.
public virtual ICollection<CompraVenda> ComprasVendas { get; set; }
public virtual ICollection<CondicaoPagamentoFormaPagamento> CondicoesPagamento { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.