Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

DbSet para uma View ao invês de uma tabela

Eu faço uma classe para cada tabela, mais e quando for uma view no banco? como eu faço ?

5 respostas

Você deve criar uma classe (Entidade) com todas as propriedades que você deseja e utilize a anotação Table para definir o nome da sua view, exemplo abaixo:

[Table("vw_PessoaFuncionario")]
public class PessoaFuncionario
{    
    public int Id { get ;set; }  
    public string Nome { get ; set;} 
}

Mais eu tenho que colocar o DbSet PessoaFuncionario ???

Sim Marcelo! É necessário colocar um DbSet como uma propriedade no Contexto, uma vez que, você só conseguirá acessá-la (exemplo abaixo), declarando ela.

using(ctx = new Contexto)
{
    ctx.PessoaFuncionario.FirstOfDefault(c => c.Id == 1)
}

Mais quando eu rodar um migration ele não vai acabar criando a tabela?

solução!

Não há necessidade de criar uma migração, uma vez que trata-se de view, ou seja, as tabelas já estão criadas. Mapeamento de view, caracteriza-se database first e não code first.