首页新闻找找看学习计划

linq to entity 查询问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-02-19 15:49

CreateOn 在数据库表中为smalldatetime类型

如何将下面sql 转换成linq to entity 形式

select count(0)+1 from Project_Hdr

where ProjectNo='B' and CreateOn between '2013-02-19' and '2013-02-20'

yellowshorts的主页 yellowshorts | 初学一级 | 园豆:162
提问于:2013-02-19 14:15
< >
分享
最佳答案
0

var result=context.Project_Hdr.Where(n=>n.ProjectNo="B" && n.CreateOn.CompareTo(Convert.ToDateTime("2013-2-19"))>0 &&

n.CreateOn.CompareTo(Convert.ToDateTime("2013-2-20").AddDays(1))<0).Count()+1;

收获园豆:5
Yu | 专家六级 |园豆:12944 | 2013-02-19 14:46

DateTime st=Convert.ToDateTime("2013-2-19");

DateTime et=Convert.ToDateTime("2013-2-20").AddDays(1);

 

var result=context.Project_Hdr.Where(n=>n.ProjectNo="B" && n.CreateOn.CompareTo(st)>0 && n.CreateOn.CompareTo(et)<0).Count()+1;

Yu | 园豆:12944 (专家六级) | 2013-02-19 14:48

@Yu: CreateOn无法使用CompareTo来比较

yellowshorts | 园豆:162 (初学一级) | 2013-02-19 15:15

@yellowshorts: 那就换成 >=st 和 <et

Yu | 园豆:12944 (专家六级) | 2013-02-19 15:39

@Yu:    多个Value就可以了

var pcount = pedm.Project_Hdr.Where(n => n.ProjectNo == hfEnClassName.Value && n.CreateOn.Value.CompareTo(st) > 0 && n.CreateOn.Value.CompareTo(et) < 0).Count() + 1;

yellowshorts | 园豆:162 (初学一级) | 2013-02-19 15:48

@yellowshorts: 但 CreateOn 为 null时,会有些问题的 ,遇到时,就知道了

Yu | 园豆:12944 (专家六级) | 2013-02-19 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册