在我的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.
当我连接远程服务器时会生成此错误。
这是什么错误?我该如何解决?
答案 0 :(得分:51)
通常这意味着您的架构和映射文件不同步,并且某处有重命名或缺少的列。
答案 1 :(得分:3)
当您为存储库表名称和数据库表名称指定其他名称时,会发生这种情况。请使用数据库和存储库检查您的表名。
答案 2 :(得分:1)
实际查询是否返回结果?如果没有结果,First()
将失败。
答案 3 :(得分:1)
就我而言,我搞砸了发布配置文件中的connectionString
属性,试图访问错误的数据库(Initial Catalog
)。实体框架然后抱怨实体与数据库不匹配,这是正确的。
答案 4 :(得分:0)
查看内部异常并找出可能导致问题的对象,您可能已更改其名称。
答案 5 :(得分:0)
我遇到类似“执行命令定义时发生错误”错误的情况。我有一些视图从另一个使用当前用户安全性的数据库中抓取。第二个db不允许第一个db的用户登录导致此问题发生。我将db登录添加到它试图从原始服务器访问的服务器,这解决了这个问题。检查您的视图,看看是否有任何链接的dbs具有与您最初登录的数据库不同的安全性。
答案 6 :(得分:0)
我刚遇到这个问题,因为我在我的数据库中更新了一个视图而没有在我的映射中刷新模式。
答案 7 :(得分:0)
就我而言,它来自存储生产者。 我从表格中删除了一个字段,却忘记了将其从我的SP中删除。