Faça EF usar uma tabela m: n com propriedade adicional [duplicata]

Esta pergunta já tem uma resposta aqui:

Crie primeiro o código, muitos para muitos, com campos adicionais na tabela de associação 6 respostas

Encontrei um problema ao criar um novo aplicativo. O aplicativo é sobre novos funcionários que entram em uma data específica. Como eles precisam de algum hardware (como notebooks, teclados etc.), queremos fornecer uma visão geral de todos os novos funcionários que virão nos próximos dias.

Portanto, existem os seguintes modelos:

Entrada:

public class Entry{
public IEnumerable<Hardware> Hardware {get; set;}
...
}

Hardware:

public class Hardware{
    public string Name {get; set;}
    public OrderStatus Status {get; set}
}

Status do pedido:

public enum OrderStatus{
    Nothing,
    Ordered,
    Arrived,
    Ready
}

No começo, isso parecia bom, pois para cada entrada eu queria criar um novo conjunto de dados de hardware (um para muitos). Agora eu decidi manter uma lista de hardware e apenas referenciar o hardware para a entrada (muitos para muitos). O problema é que o OrderStatus está vinculado ao hardware, portanto, quando um hardware é referenciado a muitos funcionários e o Orderstatus é alterado, ele será alterado em todas as entradas.

Eu acho que a solução adequada seria usar uma terceira tabela (Entry_Id, Hardware_Id, OrderStatus). Com a API fluente, é possível mapear um relacionamento em uma nova (terceira) tabela, mas não é possível adicionar uma nova propriedade (OrderStatus) a ela. Isso é possível?

questionAnswers(1)

yourAnswerToTheQuestion