2010-10-21 101 views
23

en mi aplicación asp.net mvc, estoy consiguiendo un error en la función de edición: en el código dadoOcurrió un error al ejecutar la definición del comando. Vea la excepción interna para obtener más información

public ActionResult Edit(int id) 
{ 

     var res = (from r in objeEntities.DocumentationsSet.Include("DocStatus") 
       where r.textid == id select r) 
       .First(); 
} 

estoy recibiendo esta excepción:

Source : System.Data.Entity 

Stack Trace : 
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) 
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext 
    context, ObjectParameterCollection parameterValues) 
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator() 
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) 
at System.Data.Objects.ELinq.ObjectQueryProvider.b__0[TResult](IEnumerable`1 sequence) 
at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot) 
at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression) 
at System.Linq.Queryable.First[TSource](IQueryable`1 source) 
at admin.com.Controllers.DocsGridController.Edit(Int32 id) in c:\Data\FinalCode\AC015\acomMVCSourceCode\admincom\Controllers\DocsController.cs:line 
    307 

Message : An error occurred while executing the command definition. See the inner exception for details. 

Este error se genera cuando me conecto con el servidor remoto.

¿Qué es este error? ¿Cómo lo arreglo?

+2

"Consulte la excepción interna para obtener más detalles". ¿Ha hecho usted eso? ¿Qué decía? –

+0

Esto es probablemente obvio, pero la forma de acceder a la excepción interna es desde el objeto de excepción. Como tenía un bloque de prueba dentro de un bloque de prueba, erróneamente pensé que se refería a lo interno ... bueno, fue confuso para mí. – micahhoover

+0

La excepción interna para mí indicó una asignación fallida a algunas tablas nuevas que ni siquiera quería. Recreé mi modelo y seleccioné las tablas específicas que quería y el problema desapareció. – micahhoover

Respuesta

1

¿La consulta en sí no arroja resultados? First() fallará si no hay resultados.

+0

Cuando se llama al método de acción de edición, tiene un ID de parámetro predeterminado, que no puede ser NULL nunca nulo –

44

Por lo general, esto significa que los archivos de esquema y asignación no están sincronizados y hay una columna que se ha cambiado de nombre o que falta en algún lugar.

+0

Veamos: el mío fue eliminar Phone from View, pero traté de hacer referencia a él en un SELECT dentro de un procedimiento almacenado. (servidor SQL). Se activó un error dentro del Procedimiento almacenado al no ver la columna eliminada de la vista. – JustJohn

0

Mire la Excepción interna y descubra qué objeto pudo haber causado el problema, es posible que haya cambiado su nombre.

2

Esto ocurre cuando especifica el nombre diferente para el nombre de la tabla del repositorio y el nombre de la tabla de la base de datos. Por favor, compruebe el nombre de su tabla con la base de datos y el repositorio.

0

Tuve una situación similar con el error 'Se produjo un error al ejecutar la definición del comando'. Tenía algunas vistas que estaban tomando de otro DB que usaba la seguridad del usuario actual. El segundo db no permitió el inicio de sesión para el usuario del primer db que causó este problema. Agregué el inicio de sesión de db al servidor al que estaba tratando de acceder desde el servidor original y esto solucionó el problema. Verifique sus puntos de vista y vea si hay dbs vinculados que tengan una seguridad diferente a la de la que está iniciando sesión originalmente.

0

Acabo de encontrarme con este problema y fue porque había actualizado una vista en mi base de datos y no había refrescado el esquema en mi asignación.

2

Después de pasar horas, me encontré con que me perdí 's' carta en nombre de la tabla

Fue [Table("Employee")] en lugar de [Table("Employees")]

1

En mi caso, la pata de la propiedad connectionString en un perfil de publicación, tratando de Acceso la base de datos incorrecta (Initial Catalog). Entity Framework luego se queja de que las entidades no coinciden con la base de datos, y con razón.

Cuestiones relacionadas