猿问

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

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(),暂时没有加载到本地。

拉丁的传说
浏览 366回答 4
4回答

12345678_0001

linq to object 肯定不会报错 linq to sql 用SqlMethod  linq to Entity 用 System.Data.Objects.EntityFunctions.DiffDays和System.Data.Objects.SqlClient.SqlFunctions select 中的如果还报错,可以查出来之后再转    

Helenr

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

胡说叔叔

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; 转换一下就可以了

九州编程

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