gpt4 book ai didi

c# - 如何在 Entity Framework 中检索一段时间(-10 个月)的数据?

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:43 27 4
gpt4 key购买 nike

我正在尝试计算过去 10 个月的交易数量。我如何使用 Entity Framework 获得它?

我试着做这个代码:

public ActionResult Test()
{
var Model = db.Transactions
.Where(u => u.TransactionsDate > DateTime.Now.AddMonths(-10))
.Count();

Response.Write(Model);
return null;
}

使用该代码我有这个错误页面:

LINQ to Entities does not recognize the method 'System.DateTime AddMonths(Int32)' method, and this method cannot be translated into a store expression.

最佳答案

LINQ 无法将该方法调用转换为 SQL 表达式。但是您不需要它,您可以只存储该方法调用的值并将该值传递给 LINQ:

var someValue = DateTime.Now.AddMonths(-10);
var model = db.Transactions.Where(u => u.TransactionsDate > someValue).Count();

旁注...这是非常错误的:

Response.Write(model);
return null;

您的方法返回一个 ActionResult,因此返回一个 ActionResult。结果应该是什么?例如,如果您从 AJAX 调用此方法并需要 JSON 数据,请将其作为结果返回:

return Json(model);

或者此操作可能需要返回一个 View 以在浏览器中呈现页面?:

return View(model);

几乎从不直接写入响应,总是返回null 的方法是多余的。

关于c# - 如何在 Entity Framework 中检索一段时间(-10 个月)的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com