LINQ to Entities 不识别方法“System.DateTime AddMinutes(Double)”,因此该方法无法转换为存储表达式。

作者:超级管理员 更新时间:2017-09-13 09:58:06 来源:未知 点击:15642
代码如下,求大神帮忙看看:                    DateTime local = ParseDateString(localTime, "yyyy-MM-dd HH:mm:ss");
代码如下,求大神帮忙看看:
                    DateTime local = ParseDateString(localTime, "yyyy-MM-dd HH:mm:ss");
                    List<MD_BMDM_DST_INFO> dstInfos =
                        dbContext.MD_BMDM_DST_INFO.Where(
                            t =>
                                t.TIME_ZONE_CODE.Equals(timeZoneCode)
                                && t.START_STATE.Equals("C")
                                && t.START_DATE_TIME < local.AddMinutes(t.DIFF_LST_DST)
                                && t.END_STATE.Equals("C")
                                && t.END_DATE_TIME > local.AddMinutes(-t.DIFF_LST_DST))
                                .OrderByDescending(t => t.LAST_UPDATE)
                                .DistinctBy(t => t.DIFF_LST_DST)
                            .ToList();

以下是关于本问题的解决方案:

解决方案1、
不识别 “ AddMinutes”方法,你就不要在里面直接生成了,在外面定一个参数,然后放进去对比。
解决方案2、
引用 1 楼 a123_z 的回复:
不识别 “ AddMinutes”方法,你就不要在里面直接生成了,在外面定一个参数,然后放进去对比。

可是AddMinutes()需要的参数是linq表达式里面的变量
解决方案3、
用EntityFunctions.TruncateTime转换一下:参见https://msdn.microsoft.com/zh-cn/library/system.data.objects.entityfunctions.truncatetime(v=vs.110).aspx
解决方案4、
Linq中不能加入你的方法,虽然不知道为什么这么设计,但是应该有人家的道理。
你的逻辑要放在外边写,Linq中只放入变量比较。

另外如果类似这样的代码 也可以写存储过程的。
我说的只是另外一种解决办法,如果你非要这样写,我暂时也没有设什么好的办法,可以看一些Peng的链接。

解决方案5、
在没有 本地化资源时,Linq没有办法调用方法。
也就是说,没有转成IEnumerable<T>时不行。
不过在Linq中可以使用下面这个
SqlFunctions.DateAdd("d", 1, r.Date)
需要添加System.Data.entity的引用

https://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=ZH-CN&k=k(System.Data.Objects.SqlClient.SqlFunctions.DateAdd);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true
解决方案6、
解决了,用的EntityFunctions.AddMinutes()。谢谢大家!
https://msdn.microsoft.com/en-us/library/system.data.objects.entityfunctions.addminutes(v=vs.110).aspx

推荐阅读

热门内容

关于对文件名使用 string.Repl

这里我用replace()想要让文件名变...

wpf的keydown事件

页面只有这句话       ...

ASP.NET MVC验证表单

代码如下        [Require...

EasyUi Datagrid+Deta

各位牛人,有没有做过类似的功能效果,Ea...

c#串口程序界面卡死问题

 private void sp_Dat...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫...

我在Winform中修改WebBrows

我在Winform中修改WebBrows...

c# 引用webservice 出现问题

我在浏览器浏览没问题就是在项目中添加服务...

有人这么黑易语言,连我都看不下去了

本帖最后由caozhy于2017-09-...

窗体加载时,代码未执行完就弹出了窗体

不知道是这样写不合理,还是我哪里写错了呢...

最新内容

关于对文件名使用 string.Replace() 没有作用 请教

这里我用replace()想要让文件名变成E:\CloudMusic\薛之谦 -...

以下代码实现的单例模式有什么缺陷?如果有,请做出你的修改!

public sealed class Singleton       stat...

wpf的keydown事件

页面只有这句话         

ASP.NET MVC验证表单

代码如下        [Required(ErrorMessage = "标题...

以XX开头的标识符太长,最大长度为128

本帖最后由qz6412525于2017-09-1212:09:14编辑如题,是一...

分部声明包含冲突的可访问性修饰符

代码如下:namespace ConstDefinitionLib{    pu...

关于 查询语句 中select 索引问题

string[] fruits = { "apple", "banana", "...

EasyUi Datagrid+DetailView 如何让他默认全部展开

各位牛人,有没有做过类似的功能效果,EasyUI DataGrid+Detail...

c#串口程序界面卡死问题

 private void sp_DataReceived(object sen...

浏览器内核问题

请问有谁会使用vs2013,用c#或vb编写在winform里面嵌一个谷歌浏览器...

LINQ to Entities 不识别方法“System.DateTime AddMinutes(Double)”,因此该方法无法转换为存储表达式。

代码如下,求大神帮忙看看:                    DateTim...

mvc 怎么执行mysql里的存储过程

我的连接是这样的。 public class mysqlconn : DbCon...

C# 判断一张图片是否是空白图片

平时做文件扫描存档,一般都是双面扫描.扫描之后,需要存档,有些背面空白的,需要剔...

我在Winform中修改WebBrowser控件修改User-Agent的方法貌似对WebkitBrowser无效,我已经修改为手机了

我在Winform中修改WebBrowser控件修改User-Agent的方法貌...

RawSocket抓包时,如果是正在传文件,则丢包严重的吓人

50M的文件传输,只抓到100-200KB。public void Run() ...

如何让Toast占满整个屏幕(包含状态栏)

本帖最后由sixsun1989于2017-09-1221:15:38编辑    ...

不熬夜看这里 苹果发布会直播全程回顾

        想必今天一早醒来,你的朋友圈和新闻头条一定都会被昨晚科技圈的大事...

网友心声有求必应 苹果同传四川话版

         在苹果秋季发布会开始前两周,我们针对网友喜欢听什么地方方言做过...

iPhone X演示出重大失误?背后另有真相

    中关村在线消息:苹果公司于美国西部时间9月12日上午10点(北京时间9月...

全视曲面商务旗舰 三星Note 8今晚发布

    中关村在线消息: 备受大家期待的三星新旗舰Note 8将于今晚18时在北...