引发的异常:在 EntityFramework.SqlServer 中'System.NotSupportedException'.dll - ASP.NET MVC



当我添加此行时:

var card = bd.entradas_saidas
.Where(e => e.cardID == es.cardID)
.OrderBy(e => e.cardID)
.Last();

我得到这个错误:

引发异常:"系统。EntityFramework中的NotSupportedException。SqlServer.dll

如何解决此问题?

[HttpPost]
public ActionResult AddReport(entradas_saidas es)
{
using (EMSistec bd = new EMSistec())
{
try
{
// ViewData["CurrentTime"] = DateTime.Now.ToString();
var card = bd.entradas_saidas
.Where(e => e.cardID == es.cardID)
.OrderBy(e => e.cardID).Last();

bd.entradas_saidas.Add(es);
bd.SaveChanges();
return Json(new { msg = "SUCCESS" }, JsonRequestBehavior.AllowGet);
} 
catch (Exception) 
{
return Json(new { msg = "ERROR" }, JsonRequestBehavior.AllowGet);
}
}
}

调试时,此值始终为null。

该异常表示查询中的某些内容无法转换为SQL。请记住,EF试图将您的Linq转换为SQL(或者至少转换为枚举器之前的任何代码(,并在数据库引擎中运行它。

如果我没有记错的话,SQL中不支持Last,这可以解释这个问题。

请尝试将查询更改为以下内容,看看它是否有效。。。

var card = bd.entradas_saidas
.Where(e => e.cardID == es.cardID)
.OrderByDescending(e => e.cardID)
.First();

我所做的只是颠倒排序顺序,拿走第一个项目。First是绝对支持的。

如果可行,请告诉我。

相关内容

  • 没有找到相关文章

最新更新