首页 新闻 会员 周边

请问linq中select和where中不能进行类型转换,那么怎么进行过滤和返回?比如

0
悬赏园豆:10 [已解决问题] 解决于 2012-10-11 14:16

var query=from date from dates where Convert.ToDateTime(date)>DateTime.Now select new { iseligbility=DateTime.Parse(date)<Datetime.Now.Addyear(5) };

这样肯定是会报错的,因为不能在where中和select中使用类型转换,那么如何实现这个效果呢?还有一个条件是不能使用tolist(),暂时没有加载到本地。

周念中的主页 周念中 | 初学一级 | 园豆:5
提问于:2012-10-11 11:05
< >
分享
最佳答案
0

linq to object 肯定不会报错

linq to sql 用SqlMethod 

linq to Entity 用

System.Data.Objects.EntityFunctions.DiffDays和System.Data.Objects.SqlClient.SqlFunctions

select 中的如果还报错,可以查出来之后再转

 

 

收获园豆:8
Qlin | 老鸟四级 |园豆:2403 | 2012-10-11 11:27

嗯,linq to object 不会报错,我用的是ctp5,关于System.Data.Objects.SqlClient.SqlFunctions.可以说得详细一点吗,是用where System.Data.Objects.SqlClient.SqlFunctions.xx(date)>DateTime.Now,但是我没有在里面找到合适的方法呀,xx方法是什么方法呢?

周念中 | 园豆:5 (初学一级) | 2012-10-11 11:37

@周念中: 

方法很多,可以参考 msdn

where System.Data.Objects.SqlClient.SqlFunctions.DateDiff("s",DateTime.Now,date)>0

where System.Data.Objects.EntityFunctions.DiffSeconds(DateTime.Now,date)>0 

Qlin | 园豆:2403 (老鸟四级) | 2012-10-11 12:27

@Qlin: Thanks!

周念中 | 园豆:5 (初学一级) | 2012-10-11 14:15
其他回答(2)
0

 linq to entities 么?

收获园豆:1
IEI | 园豆:63 (初学一级) | 2012-10-11 11:15

是呀,就是怎么实现sql中的  where cast(date as Datetime)>GETDATE()

支持(0) 反对(0) 周念中 | 园豆:5 (初学一级) | 2012-10-11 11:21
0
 1 IEnumerable<FriendLinkEntity> list = null;
 2             var query = from f in _db.FriendLinkEntitys
 3                         where f.IsDisplay == true && f.IsDelete == false && f.EffectiveDate > DateTime.Now
 4                         orderby f.AddDate, f.Sort descending
 5                         select new
 6                         {
 7                             f.LinkName,
 8                             f.LinkUrl
 9                         };
10             list = query.Take(top).ToList().ConvertAll<FriendLinkEntity>(item => new FriendLinkEntity()
11             {
12                 LinkName = item.LinkName,
13                 LinkUrl = item.LinkUrl
14             });
15             return list;

转换一下就可以了

收获园豆:1
xu_happy_you | 园豆:222 (菜鸟二级) | 2012-10-11 11:23

这个最后返回的还是 IEnumerable类型,我的需求是暂时不能转换为实体集合,而且f.EffectiveDate > DateTime.Now中的f.EffectiveDate我的条件是一个字符串类型的就是不能直接比较的,所以才烦恼

支持(1) 反对(0) 周念中 | 园豆:5 (初学一级) | 2012-10-11 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册