Cómo leer datos de la tabla de la base de datos del servidor SQL que no está en el esquema DBO predeterminado

asp.net-mvc c# dapper sql-server

Pregunta

Estoy construyendo una aplicación .NET MVC 4 con SQL Server como mi base de datos y uso Dapper y Dapper SimpleCRUD para las operaciones de la base de datos. En mi base de datos, tengo tablas en el esquema dbo predeterminado y también tengo tablas en otros esquemas, como product.clients en lugar de dbo.clients. He creado un inicio de sesión separado en el servidor SQL que se asigna a una cuenta de usuario separada (que es el propietario del esquema del producto y el esquema del producto por defecto) en la base de datos. Pero conectarme a la base de datos usando esta credencial me da excepciones como System.Data.SqlClient.SqlException: nombre de objeto inválido 'clients'. Ahora, he buscado y buscado pero no he podido encontrar la forma de construir el elemento de cadena de conexión correcto en web.config para poder leer los datos del esquema que no sea el dbo predeterminado. ¿Cómo hago esto?

Respuesta popular

Puede especificar explícitamente el nombre del esquema en su consulta

SELECT Id,ClientName FROM product.clients

Siempre que el usuario sql tenga acceso al esquema, debería funcionar.

Puede unir tablas de 2 schamas, así como también las necesitadas.

 SELECT C.Id,C.ClientName FROM product.clients C WITH (NOLOCK) 
 INNER JOIN dbo.UserAccount U WITH(NOLOCK) 
                         ON U.UserId=C.CreatedById


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué