entity framework中时间范围条件的linq语句怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了entity framework中时间范围条件的linq语句怎么写相关的知识,希望对你有一定的参考价值。

我在做项目的时候,遇到这样一个问题:取当天用户发表的数据,这里就涉及到一个时间范围查询问题。代码如下:
select value it from JK_Callsheet as it where it.display in 2,3,4 && it.CreateDay >
2012-12-11 01:00:00 && it.CreateDay< 2012-12-11 23:59:59
这是我的程序最后组装好的查询语句,报的错是:查询语法无效。 附近 项 '1', 列 1, 列 101.,但是我我觉得没得语法错误呀,看不出来,请高手帮忙。
肯定有人会说:给时间加个引号,我尝试过,也会报错,报的是:查询语法无效。 附近 项 '23', 列 1, 列 141.。求解。求方法。

select value it from JK_Callsheet as it where it.display in 2,3,4 && it.CreateDay >
2012-12-11 01:00:00 && it.CreateDay< 2012-12-11 23:59:59
我严重质疑设个SQL语句能否执行....把他放到SQL中试下,首先检测都不通过.为什么会是"&&" 而不是"and".这个语句是拼接出来的吧?拼错了...
参考技术A 你的后台数据库是SQLSERVER么?如果是的话 直接用System.Data.Objects.SqlClient.SqlFunctions.DateDiff("day", 日期1, 日期2) == 0 就行了

Entity Framework 第十篇 条件查询

业务类中 我们根据条件来动态的查询

创建IQueryable接口

 public IQueryable<TEntity> GetQueryable()
        {
            IQueryable<TEntity> query = dbContext.Set<TEntity>();
            return query;
        }

 

为什么创建IQueryable接口IQueryable会在调用ToList()或者Count()等方法的时候,才回向数据库查询,所以只会向数据库提交一次带条件的查询语句,从而提升了性能。

 

 public IList<Shop> Query(Shop model)
        {

            IQueryable<Shop> query = GetQueryable().Where(m => m.DelStatus == 0);
            if (model.ShopID != null)
            {
                query = query.Where(m => m.ShopID == model.ShopID);
            }
            if (!string.IsNullOrEmpty(model.Name))
            {
                query = query.Where(m => m.Name.Contains(model.Name));
            }
            if (!string.IsNullOrEmpty(model.Province))
            {
                query = query.Where(m => m.Province == model.Province);
            }
            if (!string.IsNullOrEmpty(model.City))
            {
                query = query.Where(m => m.City == model.City);
            }
            if (!string.IsNullOrEmpty(model.Area))
            {
                query = query.Where(m => m.Area == model.Area);
            }
            query = query.OrderBy(m => m.ShopID);
            return query.ToList();

        }

 

以上是关于entity framework中时间范围条件的linq语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章

来自 MYSQL 中某个范围的 Entity Framework Core 随机记录

根据 ASP.NET Core 和 Entity Framework Core 中的条件禁用 [必需] 属性

Entity Framework技巧系列之十 - Tip 37 - 41

选择行数,按 PostgreSQL 中时间间隔的动态范围排序

无法使用 Entity Framework 5 在 SQLite 数据库中插入记录

有关Sql中时间范围的问题