Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

288
Views
¿Qué puede causar una EntityCommandExecutionException en EntityCommandDefinition.ExecuteStoreCommands?

Una consulta particular de LINQ-to-SQL que selecciona campos de una vista de SQL Server en un programa C# que se ejecuta en una base de datos de SQL Server 2008, que funciona bien en mi entorno de desarrollo local, produce una excepción cuando se ejecuta en el entorno de ensayo:

 Exception Message: An error occurred while executing the command definition. See the inner exception for details. Exception Trace: System.Data.Entity.Core.EntityCommandExecutionException at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.b__5() at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) at System.Data.Entity.Core.Objects.ObjectQuery`1..GetEnumerator>b__0() at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at [my code ...]

¿Qué está causando que ocurra esta excepción?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Esto puede deberse a una consulta LINQ que intenta seleccionar un campo que en realidad no existe en la vista o tabla de la base de datos de destino.

Una forma en que esto puede suceder (que fue el problema en mi caso) es descuidar la implementación en el entorno de destino de una migración de Entity Framework creada recientemente que agrega el nuevo campo a la vista que se consulta.

Otra cosa a tener en cuenta es la excepción interna de la EntityCommandExecutionException lanzada (como sugiere el mensaje de error). En este caso, la excepción interna era del tipo SqlException y tenía el útil mensaje Invalid column name '[my column name]' .

Por lo tanto, las cosas a tener en cuenta cuando se lanza una EntityCommandExecutionException en EntityCommandDefinition.ExecuteStoreCommands al ejecutar una consulta LINQ-to-SQL:

  • Examine la excepción interna (como sugiere el mensaje de error de la excepción externa).
  • Asegúrese de que todas las migraciones de Entity Framework se hayan implementado en el entorno de destino (si EF está en uso).
  • Compruebe y vea si la consulta está intentando seleccionar un campo que no existe.
over 4 years ago · Santiago Trujillo Report

0

Esto puede deberse a que faltan "Conjuntos de resultados activos múltiples" en la cadena de conexión.

Conjuntos de resultados activos múltiples (MARS) es una característica que permite la ejecución de múltiples lotes en una sola conexión. En versiones anteriores, solo se podía ejecutar un lote a la vez contra una sola conexión. La ejecución de múltiples lotes con MARS no implica la ejecución simultánea de operaciones.

Arreglar:

 string connectionString = "Data Source=MSSQL1;" + "Initial Catalog=AdventureWorks;Integrated Security=SSPI;" + "MultipleActiveResultSets=True";
over 4 years ago · Santiago Trujillo Report

0

Me ayudó el acceso a la propiedad Local como. La excepción :

 foreach (var myTableObject in context.Table) { // Exception } foreach (var myTableObject in context.Table.Local) { // No exception }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!