gpt4 book ai didi

c# - 在 linq 查询中获取计数

转载 作者:行者123 更新时间:2023-11-30 20:35:17 24 4
gpt4 key购买 nike

我想在 linq 查询中获取计数,它在不比较 where 条件下的日期的情况下工作正常,但在比较日期后它给出异常。

public static IList GetAllCategoryData()
{
using (var objEntity = new BlueCouponEntities())
{
return (from TBL in objEntity.CategoryMasters.AsEnumerable()
let IIT = TBL.CategoryImageTransactions
select new
{
TBL.CategoryID,
TBL.CategoryName,
CategoryCount = objEntity.OfferCategoryMasters.Where(Lg => Lg.CategoryID == TBL.CategoryID && Lg.OfferMaster.EndDate > DateTime.Now.Date).Count(),
}
).ToList();
}
}

错误是:指定的类型成员;日期; LINQ to Entities 不支持。仅支持初始化程序、实体成员和实体导航属性。

最佳答案

您必须使用 EntityFunctions.TruncateTime 来获取 DateTime 的日期部分

using (var objEntity = new BlueCouponEntities())
{
return (from TBL in objEntity.CategoryMasters.AsEnumerable()
let IIT = TBL.CategoryImageTransactions
select new
{
TBL.CategoryID,
TBL.CategoryName,
CategoryCount = objEntity.OfferCategoryMasters.Where(Lg => Lg.CategoryID == TBL.CategoryID && Lg.OfferMaster.EndDate > EntityFunctions.TruncateTime(DateTime.Now)).Count(),
}
).ToList();
}

由于 DateTime.Now 目前是常量,您也可以这样写

 using (var objEntity = new BlueCouponEntities())
{
DateTime now = DateTime.Now.Date;
return (from TBL in objEntity.CategoryMasters.AsEnumerable()
let IIT = TBL.CategoryImageTransactions
select new
{
TBL.CategoryID,
TBL.CategoryName,
CategoryCount = objEntity.OfferCategoryMasters.Where(Lg => Lg.CategoryID == TBL.CategoryID && Lg.OfferMaster.EndDate > now).Count(),
}
).ToList();
}

关于c# - 在 linq 查询中获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38263877/

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