Entity framework 执行命令定义时出错。有关详细信息,请参见内部异常

Entity framework 执行命令定义时出错。有关详细信息,请参见内部异常,entity-framework,Entity Framework,在我的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 : Syst

在我的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.
此错误是在连接远程服务器时生成的


这个错误是什么?如何修复它?

实际查询是否不返回结果<如果没有结果,code>First()将失败。

通常这意味着您的架构和映射文件不同步,并且某个地方有一个重命名或缺少的列

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

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

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

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

花了几个小时后,我发现我遗漏了表名中的


它是
[Table(“Employee”)]
而不是
[Table(“Employees”)]
在我的情况下,我在发布配置文件中弄乱了
connectionString
属性,试图访问错误的数据库(
初始目录
)。实体框架然后抱怨实体与数据库不匹配,这是正确的。

在我的例子中,它来自存储生产者。
我从表中删除了一个字段,但忘了将其从SP中删除。

当调用编辑操作方法时,它具有默认参数id,不能为NULL从不为NULL“有关详细信息,请参阅内部异常”。您这样做了吗?它说了什么?我的应用经常发生这种情况,通常是DB超时。这可能很明显,但访问内部异常的方法是从异常对象。因为我在一个try块中有一个try块,所以我错误地认为它是指内部。。。嗯,这让我很困惑。我的内部异常表明映射到一些我甚至不想要的新表失败。我重新创建了我的模型并选择了我想要的特定表,问题就消失了。让我们看看:我的是我从视图中删除的Phone,但尝试在存储过程的SELECT内部引用它。(sql server)。存储过程内部触发错误,无法从视图中看到已删除的列。