1

在asp.net網頁API我使用實體框架與數據庫進行通信。這裏我試圖更新表格中的單個列。實體框架無法更新列;越來越System.Data.EntityCommandCompilationException

public HttpResponseMessage ActivateAccount(string activation_code, string userMail) 
{ 
    if (!string.IsNullOrWhiteSpace(activation_code) && !string.IsNullOrWhiteSpace(userMail)) 
    { 
     Account activateAcc = db.Accounts.Where(user => user.AccMail == userMail && user.ConfirmToken == activation_code).SingleOrDefault(); 

     if (activateAcc != null) 
     { 
     activateAcc.IsActive = true; 
     db.SaveChanges(); 
     return Request.CreateResponse(HttpStatusCode.Accepted, "account activated"); 
     } 
     else 
     { 
     return Request.CreateResponse(HttpStatusCode.NotAcceptable, "invalid account"); 
     } 
    } 
    else 
    { 
     return Request.CreateResponse(HttpStatusCode.NoContent, "missing user Mail or activation code"); 
    } 
} 

,但在該聲明

Account activateAcc = db.Accounts.Where(user => user.AccMail == userMail && user.ConfirmToken == activation_code).SingleOrDefault(); 

我正在System.Data.EntityCommandCompilationException類型的異常與此內部異常

錯誤3002:問題在映射片段起始於第6行:潛在的運行時違反表帳戶的鍵(Account.AccID)的:列(Account.AccID)映射到EntitySet的帳戶對概念端屬性(Accounts.AccID),但他們並不形成EntitySet的重點親perties(Accounts.AccID,Accounts.AccMail,Accounts.AccName,Accounts.AccPassword,Accounts.IsActive,Accounts.IsAdmin個)\ r \ n \ r \ nAccPlusModel.msl(19,10):錯誤3002:問題在映射片段起始於第19行:潛在的運行時違反表TansactionCategory的鍵(TansactionCategory.CatID)的:列(TansactionCategory.CatID)被映射到的EntitySet TansactionCategories對概念端屬性(TansactionCategories.CatID),但它們不形成所述的EntitySet的關鍵性質(TansactionCategories .CatAccount,TansactionCategories.CatColor,TansactionCategories.CatID,TansactionCategories.CatName)

回答

0

實體框架設計者已經確定表中的所有列作爲主鍵由作爲第一當我設置的框架我沒有PK因此即使我在SQL服務器和更新模式中設置PK它將保持s AME所以我必須編輯模型我自己

+0

可能下降,並再次creatign模型會更快 – JotaBe