Temos um aplicativo .NET Framework 4.8 que usa o Entity Framework 6.
Agora, estamos com um problema: precisamos adicionar algumas tabelas que não garantem nenhuma unicidade (nenhuma chave primária e as linhas podem ser duplicadas). Não há como alterar as tabelas, pois isso pode causar problemas (esta tabela é preenchida novamente às 4 da manhã todos os dias por um programa que não podemos controlar).
Basicamente o mesmo problema descrito nesta pergunta , mas a resposta simplesmente disse para não usar o Entity Framework 6. Outra alternativa que posso pensar é ter uma exibição ou outro programa que importe os dados desta tabela para uma nova tabela.
Não existe realmente uma solução alternativa para a API Fluent ou para a Anotação no Entity Framework? Preciso mesmo introduzir uma maneira totalmente nova de acessar nosso banco de dados ou uma nova visualização só porque no EF6 uma entidade precisa ter uma chave primária?
Exemplo da relação das tabelas (tabela real, mas removi a maioria das colunas não relacionadas):
class Customer
{
[Key]
public int CustomerID { get; set; }
public string FirstName { get; set; }
public virtual ICollection<CustomerOutboundEvent> CustomerOutboundEvents { get; set; }
}
// The new table
class CustomerOutboundEvent
{
// Adding key that doesn't actually exist will cause this error: Invalid column name 'CustomerOutboundEventID'.
//[Key]
//public int CustomerOutboundEventID { get; set; }
public int CustomerID { get; set; }
public Customer Customer { get; set; }
public string OutboundNumber { get; set; }
public string EventMessage { get; set; }
}