c# - asp - how to create a table in mvc
ConfiguraciĆ³n de sesiĆ³n para admitir vistas indexadas (1)
De acuerdo con la documentación , puede establecer estas configuraciones en el nivel de la base de datos:
La configuración de la base de datos establecida mediante ALTER DATABASE es válida solo en el nivel de la base de datos y surte efecto solo si se establece explícitamente. Las configuraciones de la base de datos anulan las configuraciones de las opciones de instancia que se establecen mediante sp_configure.
¿Lo intentaste?
Desafortunadamente, estas propiedades no se pueden establecer en la cadena de conexión, por lo tanto, use este sql:
ALTER DATABASE dbname SET ANSI_NULLS ON
-- etc
Estoy usando vistas indexadas en mi base de datos. Entonces el cliente debe tener alguna configuración de conexión de sesión para llamarlos. Estoy usando la conexión ado.net, comando para llamar a procedimientos almacenados. Cada vez que tengo que llamar a un procedimiento almacenado, creo una conexión (espero que el grupo de conexiones me permita hacerlo rápidamente) y ejecuto un comando para aplicar estas configuraciones a la conexión actual.
// some code to create a new connection
//...
//...
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
using (var cmd = connection.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText =
@"
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF";
cmd.ExecuteNonQuery();
}
Otro pensamiento: agregar estas configuraciones antes de cada llamada del procedimiento almacenado:
command.CommandText = ''SET....'';
command.CommandText += '' EXEC MyStroredProc @...'';
Esta solución causa algunos problemas de rendimiento, ¿no?
¿Cómo puedo evitar tanto trabajo si tengo que crear una nueva conexión cada vez? ¿Cómo aplicar estas configuraciones automáticamente?
SOLUCIÓN:
ALTER DATABASE [MyDB]
SET
ANSI_NULLS ON,
ANSI_PADDING ON,
ANSI_WARNINGS ON,
ARITHABORT ON,
CONCAT_NULL_YIELDS_NULL ON,
QUOTED_IDENTIFIER ON,
NUMERIC_ROUNDABORT OFF