欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

ef AddDays报错

发布时间:2024/8/26 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ef AddDays报错 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

ef func写法,在语句中不能使用adddays方法

where(u=>u.date>datetime.now.AddDays(1)); 这样写就是不行 可以改为: where(u=>System.Data.Objects.EntityFunctions.DiffDays(datetime.now, u.Date)>0);

下面是我的一个案例,虽然到了最后都没有实现功能!


 

 

 

public List<ContractBudget> ListRemindPaymentForAutoSMS() {using (var dbContext = new FMDbContext()){IQueryable<ContractBudget> ShowList = dbContext.ContractBudget.Include("CommercialTenant").Include("Contract").Include("Contract.Staff").Include("Contract.Bill").Include("Contract.Bill.Branch").Include("Contract.Bill.Order").Include("Contract.Bill.Order.Room");//开通短信自动发送有效、有余额商户id-listList<int> listcommerid = ConfigManager.ListCommercialTenantForRemindPaymentAutoSMS();Dictionary<int, int> dic = new Dictionary<int, int>();//(from u in dbContext.ContractBudget where dic.Keys.Contains(u.CommercialtenantID) select u into g new {value = dic[]} );//通过list取数据--取出支付日期在提醒器内的商户的出房合同预算//催缴期内var now = DateTime.Now.Date;ShowList = ShowList.Where(u => dic.Keys.Contains(u.ID) && now >= u.Date.AddDays(Convert.ToDouble(dic.Where(d => d.Key == u.ID).First().Key)).Date && now <= u.Date);//未缴费、房租ShowList = ShowList.Where(u => u.CheckStatus == (int)EnumContractBudgetCheckStatus.WSH && u.Type == (int)EnumContractBudgetType.FZ);//预算没有提醒过ShowList = ShowList.Where(u => u.isAutoSMS == 0);return ShowList.ToList();}}

这里会报错

ShowList = ShowList.Where(u => dic.Keys.Contains(u.ID) && now >= u.Date.AddDays(Convert.ToDouble(dic.Where(d => d.Key == u.ID).First().Key)).Date && now <= u.Date);

public List<ContractBudget> ListRemindPaymentForAutoSMS(){using (var dbContext = new FMDbContext()){IQueryable<ContractBudget> ShowList = dbContext.ContractBudget.Include("CommercialTenant").Include("Contract").Include("Contract.Staff").Include("Contract.Bill").Include("Contract.Bill.Branch").Include("Contract.Bill.Order").Include("Contract.Bill.Order.Room");//开通短信自动发送有效、有余额商户id-listList<int> listcommerid = ConfigManager.ListCommercialTenantForRemindPaymentAutoSMS();Dictionary<int, int> dic = new Dictionary<int, int>();//通过list取数据--取出支付日期在提醒器内的商户的出房合同预算//催缴期内var now = DateTime.Now.Date;ShowList = ShowList.Where(u =>  now <= u.Date && System.Data.Objects.EntityFunctions.DiffDays(now, u.Date) < dic.Where(d => d.Key == u.ID).First().Value);ShowList = ShowList.Where(u => u.CheckStatus == (int)EnumContractBudgetCheckStatus.WSH && u.Type == (int)EnumContractBudgetType.FZ);//预算没有提醒过ShowList = ShowList.Where(u => u.isAutoSMS == 0);return ShowList.ToList();}}

也就是adddays做的判断改成(datetime-datetime).days>number

但是我写的语句还是不行,建议不采用dic的形式!

 

转载于:https://www.cnblogs.com/zhaokunbokeyuan256/p/7562548.html

总结

以上是生活随笔为你收集整理的ef AddDays报错的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。