2010-10-21 162 views
23

在我的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. 

此錯誤當我連接遠程服務器時生成。

這是什麼錯誤?我如何解決它?

+2

「有關詳細信息,請參閱內部例外。」你做到了嗎?它說了什麼? – 2010-10-21 12:41:57

+0

這可能很明顯,但訪問內部異常的方式來自異常對象。因爲我在try塊中有一個try塊,所以我錯誤地認爲它是指內部......好吧,這讓我感到困惑。 – micahhoover 2012-07-31 15:58:18

+0

我的內部異常表明映射到一些我甚至不想要的新表的映射失敗。我重新創建了我的模型,並選擇了我想要的特定表格,並且問題消失了。 – micahhoover 2012-07-31 15:59:14

回答

1

實際查詢是否返回結果?如果沒有結果,則First()將失敗。

+0

編輯操作方法被調用時,它有默認參數ID,它不能爲NULL永遠不會爲空 – 2010-10-21 10:00:46

44

通常這意味着您的模式和映射文件不同步,並且有一個重命名或丟失的列。

+0

讓我們看看:我是從視圖中刪除電話,但試圖在存儲過程的SELECT內引用它。 (sql服務器)。在存儲過程中觸發錯誤,未從視圖中看到已刪除的列。 – JustJohn 2016-03-18 22:57:17

0

查看內部異常並找出可能導致該問題的對象,您可能已更改其名稱。

2

當您爲存儲庫表名和數據庫表名指定不同的名稱時,會發生這種情況。請檢查您的表名與數據庫和存儲庫。

0

我和'執行命令定義時發生錯誤'錯誤類似。我有一些從另一個使用當前用戶安全性的數據庫抓取的視圖。第二個數據庫不允許第一個數據庫的用戶登錄導致發生此問題。我將db登錄添加到它試圖從原始服務器獲得的服務器,並解決了這個問題。檢查您的視圖,看看是否有任何鏈接的數據庫具有不同於您最初登錄的數據庫的安全性。

0

我剛剛遇到了這個問題,這是因爲我更新了我的數據庫中的視圖,並沒有刷新我的映射中的架構。

2

花費數小時後,我發現我錯過了在表名's'

那是[Table("Employee")]代替[Table("Employees")]

1

就我而言,我搞砸了connectionString財產發佈配置文件,試圖訪問錯誤的數據庫(Initial Catalog)。實體框架然後抱怨實體不匹配數據庫,正確如此。

相關問題