关于linq to entity中toString()的使用

从零开始:在CentOS服务器上部署R Shiny应用的完整指南 本文提供了一份在CentOS服务器上部署R Shiny应用的完整实战指南。内容涵盖从创建专用用户、安装R语言环境、配置Shiny Server,到最终部署应用并配置防火墙的全过程。针对部署过程中常见的权限、端口及依赖问题,给出了详细的解决方案,旨在帮助数据分析师和开发者将本地Shiny应用稳定、安全地发布至生产环境。 阅读详情

今天在工作中遇到一个问题,写了一个方法:

    public virtual List<RegistCourseEntity> GetRegistCourse(string accountId)
    {
        if (string.IsNullOrEmpty(accountId))
        {
            return null;
        }
        List<RegistCourseEntity> list = null;
        using (AuthSystemEntities edm = new AuthSystemEntities())
        {
            list = (from rc in edm.RegistCourse
                    join pg in edm.PointGrant on rc.point_grant_id equals pg.point_grant_id into pgi
                    from pgo in pgi.DefaultIfEmpty()
                    where rc.account_id == accountId
                    where rc.invalid_date == null || rc.invalid_date > DateTime.Now
                    orderby rc.point_grant_id ascending
                    select new RegistCourseEntity { CourseId = u.point_grant_id,
                                                    CourseName=u.point_grant_name,
                                                    EnterDate=u.enter_date.ToString("yyyyMMdd")
                                                    }).ToList();
            return list;
    }

在编译时没有错误,但是在执行时, EnterDate=u.enter_date.ToString("yyyyMMdd")行报错,原因是因为在linq to entity中不识别toString()方法,通过调查,发现在在linq to entity中,在向数据库提取数据的过程中,是不允许随便添加任何(包括自定义)函数的,那如果我确实想修正一些数据怎么办呢?可以把检索的结果集AsEnumerable(),然后再结果集中使用ToString()(Linq to Object)。所以方法改为:

    public virtual List<RegistCourseEntity> GetRegistCourse(string accountId)
    {
        if (string.IsNullOrEmpty(accountId))
        {
            return null;
        }
        List<RegistCourseEntity> list = null;
        using (AuthSystemEntities edm = new AuthSystemEntities())
        {
            list = (from rc in edm.RegistCourse
                    join pg in edm.PointGrant on rc.point_grant_id equals pg.point_grant_id into pgi
                    from pgo in pgi.DefaultIfEmpty()
                    where rc.account_id == accountId
                    where rc.invalid_date == null || rc.invalid_date > DateTime.Now
                    orderby rc.point_grant_id ascending
                    select new { rc.point_grant_id, pgo.point_grant_name,rc.enter_date }).AsEnumerable().Select
                        (u => new RegistCourseEntity { CourseId = u.point_grant_id,
                                                                        CourseName=u.point_grant_name,
                                                                        EnterDate=u.enter_date.ToString("yyyyMMdd")
                                                                    }).ToList();
            return list;
        }
    }

最后附上从别处摘抄的:

.AsEnumerable() 和 .ToList() 的区别:

  • .AsEnumerable()延迟执行,不会立即执行。当你调用.AsEnumerable()的时候,实际上什么都没有发生。
  • .ToList()立即执行
  • 当你需要操作结果的时候,用.ToList(),否则,如果仅仅是用来查询不需要进一步使用结果集,并可以延迟执行,就用.AsEnumerable()/IEnumerable /IQueryable
  • .AsEnumerable()虽然延迟执行,但还是访问数据库,而.ToList()直接取得结果放在内存中。比如我们需要显示两个部门的员工 时,部门可以先取出放置在List中,然后再依次取出各个部门的员工,这时访问的效率要高一些,因为不需要每次都访问数据库去取出部门。
  • IQueryable实现了IEnumberable接口。但IEnumerable<T> 换成IQueryable<T>后速度提高很多。原因:
  • IQueryable接口与IEnumberable接口的区别:  IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。
  • IEnumerable跑的是Linq to Object,强制从数据库中读取所有数据到内存先。



通信原理期末考试试题及答案 五、(总分12分)设某信道具有均匀的的双边噪声功率谱密度在该信道中传输抑制载波的单边带(上边带)信号,并设调制信号m(t)的频带限制在5K HZ,而载波为100 K HZ,已调信号的功率为10KW。:(1)单边带信号的载频为100kHz,带宽B=5kHz,为使信号顺利通过,理想带通滤波器的中心频率为。8、对最高频率为fH的调制信号m(t)分别进行AM、DSB、SSB调制,相应已调信号的带宽分别为。7、设调制信号为f(t)载波为,则抑制载波双边带调幅信号的时域表达式为,频域表达式为。 阅读详情

相关推荐

AXI backpressure反压机制代码

本文将xilinx的axi读写代码进行修改,实现吞吐量达到50%

m0_64636251的博客 1764

LinqToEntity中.toString()与.toShortDateTime()无法使用的问题解决方式

若直接在linq中使用tostring,或者todatestring正常来说会报以下错: //LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式。 //LINQ to Entities 不识别'System.String ToShortDateString()' 方法 解决方法: EF6要引用 "

Being self-discipline leads to freedom 1091

Qi标准下的充电协议及其记忆技巧

记忆无线充电协议中的。

m0_73991989的博客 1319

Linq中使用ToString或Split等方法的方法

由于linq中不能使用ToString和Split等正常的函数,因为会提示无法转存为sql,所以无法直接使用,但是可以先查询出结果,再ToList(),然后再进行ToString或Split就可以了,这个方法真的不错 例 List&lt;string&gt; areaList = AreaList(areaCode); DB _db = n...

dowhathowtodo 561

电流采样电路设计:差分放大与ADC采集详解

在电机控制、电源管理、电池监测等应用中,电流采样是一个关键环节。通常,我们使用小阻值的采样电阻将电流信号转换为电压信号,再通过运放放大后送入ADC进行采集。本文将详细分析一种基于差分放大器的电流采样电路,包括信号放大、参考电压偏置、滤波保护以及ADC转换计算等内容。

W0s477的博客 1万+

嵌入式开发实战:LWIP中PPP协议配置全流程(含CHAP认证避坑指南)

本文是一份嵌入式开发实战指南,详细解析了如何在STM32平台上配置LWIP协议栈中的PPP协议,实现从串口到IP网络的完整连接。内容涵盖工程搭建、源码整合、关键配置、串口驱动绑定、状态管理以及CHAP认证等核心流程,并重点提供了CHAP认证失败的排查与避坑指南,帮助开发者高效打通嵌入式设备的网络连接。

plant的博客 460

linq 条件中使日期ToString

做项目的时候遇到一个要将数据库保存的日期yyyy-MM.dd hh:mm:ss.fff 转换yyyy-MM-dd hh:mm然后求和 于是直接在linq中这样写 var TotalSpace = db.DiskInfor .Where(d => d.UpDateTime.T...

809

为Codex添加任务完成提示音:提升开发效率的实用技巧

在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通

weixin_26767391的博客 531

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

var queryBrand = from brand in dbContext.BrandTranOrderTBs from orderPayment in dbContext.OrderPaymentTBs where brand.ID.ToStrin...

weixin_30535043的博客 152

AUTOSAR进阶图解==>AUTOSAR_SWS_ECUStateManager

AUTOSAR ECU State Manager 摘要 AUTOSAR ECU状态管理器(EcuM)是Classic Platform 4.4.0规范中的核心模块,负责管理ECU的整个生命周期,包括启动、运行、关机和睡眠等状态转换。EcuM通过协调各基础软件模块的初始化过程,确保系统可靠运行。 主要功能包括: 启动管理 - 控制从硬件初始化到应用运行的完整启动序列 状态转换 - 管理RUN/POST_RUN/SHUTDOWN等状态切换 唤醒验证 - 区分真实与虚假唤醒事件 关机序列 - 确保安全关机保存关

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 2467

uniapp [全端兼容] - 详细实现下拉筛选菜单功能组件,下拉式筛选菜单效果,类似电商美团点击筛选项底部弹出列表点击选择后自动收起(详细示例代码,全端兼容小程序、安卓苹果app、h5网页、nvue

uni-app,vue2,vue3,向下弹出菜单包含筛选功能,日期筛选,下拉框选择器,下拉多条件筛选,下拉式筛选菜单,uniApp如何实现条件下拉筛选,Uniapp官方条件筛选组件,下拉框式条件筛选插件组件,最好用的插件组件,多端兼容,下拉菜单筛选,过滤筛选列表,下拉筛选栏,多列联动的条件筛选,下拉菜单地区和筛选,微信小程序,支付宝小程序,h5网页,移动端网站,安卓app,苹果app,nvue,uniapp所有平台兼容,下拉菜单筛选,下拉式条件筛选,下拉列表,点击排序,级联筛选,uniapp实现下拉筛选

🏆 前端领域优质创作者 1万+

Linq查询Convert.ToDateTime(o.Date)问题 已解决

Linq语句在在string转换为datetime查询方法实现 在查询转化之前应该是有一个集合,在进行转换查询;  var lst=数据库源.Where(o =&gt; Convert.ToDateTime(o.Date) &gt; afterweek).Tolist();//这样肯定报错,说Linq不支持stringzhuanDateTime查询; 如果:var lst = db.dbIs...

ai_feng123的博客 2914

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【EntityFramework CodeFirst 】错误解析:LINQ to Entities does not recognize the method ToString

错误信息: System.NotSupportedException:“LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.” 原因分析: 解决办法:

itisauto2008的专栏 1316

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ef中不能使用ToString()方法的解决办法

Entity Framework 4 / Linq: How to convert from DateTime to string in a query?

每天进步一点点 4262

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

EF中无法使用时间转字符串

场景: 查询条件需要使用到时间类型,且需要特殊格式化,例:ToString("yyyy-MM-dd");即,在需要使用时间进行like方式处理时; 此时,用如下方式: var q = from c in context.HasDateModels where c.UserDate.ToString("yyyy-MM-dd").Contains("20") select c...

dingze5250的博客 333

LINQ to Entities 不识别方法"System.String ToString()"

做基础项目为其他项目提供接口,返回来一个这样的错误。其实已经不是第一次遇到这个错误了,再次遇到,记录下来,方便查阅,也给予警示,同样的问题不能在浪费时间思考,修改。。。          错误信息:“LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式。”          错误产生的原因:Linq不

李红 4438

Linq LINQ to Entities 不识别方法“System.String ToString(System.Object)”

今天在写一段Linq查询,准备将数据绑定到jQuery EasyUI框架的 dataGrid控件上,问题出在时间类型的字段(ModifyDate)上。在EasyUI框架下,服务端对象是需要将类对象序列化为JSON格式以传递给客户端,继而绑定到 dataGrid控件进行呈现,可这时间类型字段ModifyDate在客户端显示时出现异常,姑且就叫乱码吧。 一开始,试图通过对该时间字段...

dohqani590517的博客 370

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

1、LINQ to Entities 不识别方法“System.String get_Item(Int32)”,因此该方法无法转换为存储表达式。项目中发现linqto entities不识别? ,为何大家都要腰间盘,你的如此突出。 Expression<Func<Models.GroupMemberModel, bool>> epression = ep =&g...

weixin_30782293的博客 383

linq to entity不识别方法"System.String ToString()"

将班级id以字符串形式输入如:“1111,1112,1113”。数据库里的id为int型,在数据路里找到匹配的相应班级转换成列表。在这里爆出问题:不识别方法"System.String ToString()",跪求大神提出解决方案。public IEnumerable<Class1> FindClassesByIDs(string ids) { va...

weixin_30267697的博客 67

Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)

1、在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类型的字段,就会报响应的扩展方法无法自动推断参数类型的问题(比如:我用的是groupjoin扩展方法), 如果进行了常规的类型转换,比如将int字段对应的转换为string(ToString方法)

927

linq to entity查询,日期格式化

linq to entity查询,日期格式化 当从数据库查询数据的同时对取得的数据中日期进行格式化。 /// <summary> /// 同类文章 /// </summary> ///...

weixin_30483013的博客 97

LINQ to Entity 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。

最近在项目中一直遇到问题,其中最让人头疼的就是:    LINQ to Entity 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。    错误出处为:    List enResource = this.CurrentDal.LoadItems(r => r.ResourcePId ==resourceId.ToString()).ToLi

杜 5431

LINQ 语句中格式化日期

原文地址: https://www.jeremyjone.com/656/,转载请注明。 LINQ中经常需要进行数据判断进行筛选,如果遇到需要对日期进行格式化,需要注意不能在实体Entity中直接格式化日期,这样会报错,而是需要先将实体转换,再筛选。 例如: var day = "2020-04-20"; var r = _db.PlanDay.FirstOrDefault(x=>x.Va...

一只小鹰 2339

Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)...

1、在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类型的字段,就会报响应的扩展方法无法自动推断参数类型的问题(比如:我用的是groupjoin扩展方法), 如果进行了常规的类型转换,比如将int字段对应的转换为string(ToString方法)...

weixin_30628801的博客 201

Linq to Entities中的Datetime类型转换

使用JavaScriptSerializer将Ado.net Entity Framework的实体转换为JSON。不过JavaScriptSerializer在序列化Datetime类型的处理有些特别: DateTime time = new DateTime(0x7b2, 1, 1, 0, 0, 0, DateTimeKind.Utc); DateTime dt=(DateTime)o

itstrike的专栏 415

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

“/”应用程序中的服务器错误。LINQ to Entities 不识别方法“System.Collections.Generic.List`1[quantapi.Controllers.FuncParamValue] getFuncParamValue(Int32)”,因此该方法无法转换为存储表达式。说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代

万恩铭的博客 1799
下一篇: 关于OnNavigatedTo和OnNavigatedFrom
幸运的猪
博客等级 码龄16年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值