1
resposta

Campo ID na Classe Produto

Como o entity Entende que ProdutoID é uma FK de produto? é alguma convenção de nomenclatura?

como informar outro campo como código por Exemplo queria que CodigoProduto fosse minha PK da tabela de Produtos.

1 resposta

Boas @Paulo,

Por convenção o EF entende que para a tua Navigation Property (Propriedade de Navegação) se criares uma propriedade com o nome idêntico ao Tipo desta (navigation) adicionando o Sufixo "Id" ("Produto" + "Id") esta será a tua Foreign Key. Exp.:

public class MinhaClasse {
    ...
    public int ProdutoID { get; set; }
    public virtual Produto ProdutoRelacionado { get; set; }
    ...
}

Para conseguires definir uma outra propriedade como a tua Foreign Key tens que fazê-lo explicitamente utilizando anotações. Exp.:

public class MinhaClasse {
    ...
    [ForeignKey("ProdutoRelacionado ")]
    public int CodigoProcuto { get; set; }
    public virtual Produto ProdutoRelacionado { get; set; }
    ...
}

Onde estás a dizer explicitamente que esta propriedade será a chave estrangeira para o relacionamento a ser criado com a tabela "Produto".

P.S: caso me tenha perdido um pouco na explicação, sempre podes ler mais aqui: https://www.safaribooksonline.com/library/view/programming-entity-framework/9781449317867/ch04s02.html