日期:2014-05-20  浏览次数:21070 次

关于LINQ to Entities 的问题~~~~


IOrderedQueryable<Models.Timepill_DiaryTB> bookss = from m in db.Timepill_DiaryTBwhere ( m.DiaryTime.Date == DateTime.Now.Date)  orderby m.DiaryID descending select m;
orderby m.DiaryID descending select m;
LINQ to Entities 不支持指定的类型成员“Date”。只支持初始值设定项、实体成员和实体导航属性。
------解决方案--------------------
什么情况?
数据库实体类对应的数据库表中你的字段起了个Date的吧,是不是跟SQL中的保留字冲突了呀
------解决方案--------------------
现在有了有一个变通的方法就是

time1 = datetime.now.date
time2= datetime.now.date.addday(1)
m.DiaryTime >= time1 &&  m.DiaryTime<time2 

------解决方案--------------------
IOrderedQueryable<Models.Timepill_DiaryTB> bookss =
 from m in db.Timepill_DiaryTB
let t1=m.DiaryTime.Date
let t2=DateTime.Now.Date
where  t1 == t2
orderby m.DiaryID descending select m;
------解决方案--------------------
该回复于2011-03-25 15:17:34被版主删除
------解决方案--------------------
如果仔细查看的话,可能就会发现,生成的实体框架和数据库映射是有出入的,最明显的例子是DateTime和DateTime2类型,在有些电脑上数据库中的DateTime类型可以与实体框架里面的DateTime类型相互转换,而在某些电脑上就是不行,但数据库中的DateTime2类型就可以与实体框架里面的DateTime类型在任何情况下相互转换!

百度说DateTime2比DateTime更精确!

Linq是使用xlst文件解析的,里面不包含任何类型之间的相互转换,你可以试试数字 ToString() ,就会报错,这个是最简单的,因为在xlst解释Linq之前和之后,类型没有任何转换,如果有的话,就会报错!

上述仅是个人观点,解决方案:在带入Linq之前,请类型转换好,这样以防出错!
------解决方案--------------------
Linq是使用xlst文件解析 。。。 第一次听说。。。愿闻其详
------解决方案--------------------
引用:
Linq是使用xlst文件解析 。。。 第一次听说。。。愿闻其详


给你推荐一本书《Linq 高级编程》
------解决方案--------------------
以前对Date的处理接触的很少,不过今天长知识了.
------解决方案--------------------
把你的实体连接字符串改为sql2005数据库,然后从数据库更新模型