1
resposta

Acessar view no SQL Server via dbcontext

Estou tentando criar uma API a partir do curso que acompanhei pela plataforma. Criei uma view no SQL Server e estou tentando atraves do DBSet acessa-la. Porem creio que nao obtive resultado porque a view possui seu schema, nao esta como dbo. Seria esta a causa de nao conseguir carregar no MODEL?

Tentando acessa a view que faz parte do schema Pessoa.vwPessoaControlID Poderia ser por isso?? Algum tutorial sobre mapear viewes do sql server

1 resposta

Olá Marcelo! Tudo bem?

Pelo que você descreveu e pela imagem que você enviou, parece que o problema está realmente relacionado ao esquema da sua view no SQL Server. Quando uma view (ou tabela) não está no esquema padrão dbo, você precisa especificar o esquema ao referenciá-la no seu código.

No seu DbContext, você deve garantir que o mapeamento para a view esteja correto, incluindo o nome do esquema. Por exemplo, se sua view se chama vwPessoaControlID e está sob o esquema Pessoa, você deve configurar seu DbContext assim:

modelBuilder.Entity<SeuModelo>().ToTable("vwPessoaControlID", schema: "Pessoa");

Certifique-se de substituir SeuModelo pelo nome da classe de modelo que representa a view em seu projeto.

Além disso, na sua query, ao referenciar a view, você deve usar o nome completo (incluindo o esquema) se não estiver configurado no DbContext como mostrado acima. Por exemplo:

var pessoa = _context.Pessoas.FromSqlRaw("SELECT * FROM Pessoa.vwPessoaControlID WHERE ID = {0}", id).FirstOrDefault();

Isso deve resolver o problema de acesso à view com um esquema diferente de dbo. Verifique também se todas as permissões necessárias estão configuradas no SQL Server para permitir que seu aplicativo acesse a view.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.