Pregunta

Cuando agrego procedimientos almacenados a un DataContext de LINQ, por defecto visual studio prefija el procedimiento almacenado con el esquema de SQL que se encuentra. ¿Hay alguna manera de parar esto? En nuestro medio, los procedimientos almacenados pueden ser movidos a otros esquemas con el tiempo, y omitiremos el esquema basado en el usuario SQL que se utiliza para conectar. ¿Tengo que hacerlo manualmente o ¿hay algún modo apagar los prefijos de esquema?

¿Fue útil?

Solución

No parece haber ningún medio para eliminar el esquema de mapeado procedimientos almacenados LINQ a SQL mediante el diseñador. Todos los procs se asignan incluyendo su nombre de esquema, que (para ser justos) es probablemente una cosa buena para la mayoría de aplicaciones. Y al igual que con la mayoría de las cosas LINQ to SQL, cambie su base de datos a su propio riesgo. Demasiados cambios requeridos base de datos de LINQ a SQL dbml actualizaciones y reconstrucciones.

excavación más profunda, el nombre de esquema se almacena en el archivo XML respaldo dbml, y luego se incluye en el archivo designer.cs generado que contiene las funciones / métodos que son llamados.

// dbml
<Function Name="dbo.MyProc" Method="MyProc">

// designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.MyProc")]
public int MyProc()

Si edita manualmente el archivo XML dbml para eliminar el esquema y guardar dentro de Visual Studio, el código será regenerado de esta manera:

// changed dbml - removed the dbo schema
<Function Name="MyProc" Method="MyProc">

// the resultant generated code in designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute()]
public int MyProc()

Lo que funcionó para mi cuenta, entrando con dbo como esquema predeterminado. Voy a dejar la prueba depende de usted.

Esto podría ser una solución viable - el diseñador visual todavía funciona así, otros elementos pueden ser añadidos etc sin romper la función sin esquema, y ??la función en sí no provoca que el diseñador se quejan. Mejor de las suertes!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top