【发布时间】:2014-08-27 16:25:27
【问题描述】:
在 asp.net web api 中,我使用实体框架与数据库进行通信。在这里,我试图更新表中的单个列。
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) 在概念方面映射到实体集帐户的属性 (Accounts.AccID),但它们不构成 EntitySet 的关键属性(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)
【问题讨论】:
标签: c# asp.net entity-framework entity-framework-4 entity-framework-5