【问题标题】:An error occurred while executing the command definition. See the inner exception for details执行命令定义时发生错误。有关详细信息,请参阅内部异常
【发布时间】:2010-10-21 09:46:35
【问题描述】:

在我的 mvc asp.net 应用程序中,我在编辑功能中遇到错误:在给定代码中

public ActionResult Edit(int id)
{

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

我遇到了这个异常:

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.

当我连接远程服务器时会产生此错误。

这是什么错误?我该如何解决?

【问题讨论】:

  • "查看内部异常了解详情。"你这样做了吗?它说了什么?
  • 我的应用经常发生这种情况,通常是数据库超时。
  • 这可能很明显,但是访问内部异常的方法是从异常对象。由于我在 try 块中有一个 try 块,我错误地认为它指的是内部......好吧,这让我感到困惑。
  • 我的内部异常表明映射到一些我什至不想要的新表失败。我重新创建了我的模型并选择了我想要的特定表,问题就消失了。

标签: entity-framework


【解决方案1】:

这通常意味着您的架构和映射文件不同步,并且某处存在重命名或丢失的列。

【讨论】:

  • 让我们看看:我的是我从视图中删除了电话,但试图在存储过程中的 SELECT 中引用它。 (SQL服务器)。存储过程内部触发了错误,没有从视图中看到已删除的列。
【解决方案2】:

花了几个小时后,我发现我错过了表名中的's' 字母

它是 [Table("Employee")] 而不是 [Table("Employees")]

【讨论】:

    【解决方案3】:

    当您为存储库表名和数据库表名指定不同的名称时,会发生这种情况。请检查您的表名与数据库和存储库。

    【讨论】:

      【解决方案4】:

      就我而言,我弄乱了发布配置文件中的 connectionString 属性,试图访问错误的数据库 (Initial Catalog)。然后,Entity Framework 抱怨实体与数据库不匹配,这是正确的。

      【讨论】:

        【解决方案5】:

        我遇到了类似的情况,“执行命令定义时发生错误”错误。我有一些从另一个使用当前用户安全性的数据库中获取的视图。第二个数据库不允许第一个数据库的用户登录,导致发生此问题。我将数据库登录添加到它试图从原始服务器访问的服务器,这解决了这个问题。检查您的视图,看看是否有任何与您最初登录的数据库具有不同安全性的链接数据库。

        【讨论】:

          【解决方案6】:

          实际查询没有返回结果吗?如果没有结果,First() 将失败。

          【讨论】:

          • 调用edit action方法时,有默认参数id,不能为NULL 永远不能为Null
          【解决方案7】:

          查看内部异常并找出可能导致问题的对象,您可能更改了它的名称。

          【讨论】:

            【解决方案8】:

            我刚刚遇到了这个问题,这是因为我更新了数据库中的视图,但没有刷新映射中的架构。

            【讨论】:

              【解决方案9】:

              就我而言,它来自存储的生产者。 我从表中删除了一个字段,却忘记将其从我的 SP 中删除。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-10-08
                • 1970-01-01
                • 2013-07-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-03-06
                相关资源
                最近更新 更多