LINQ to Entities 查询注意事项
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,1> 排序信息丢失如果在排序操作之后执行了任何其他操作,则不能保证这些附加操作中会保留排序结果。这些操作包括 Select 和 Where 等。另外,采用表达式作为输入参数的 First 和 Firs
千家信息网最后更新 2024年10月18日LINQ to Entities 查询注意事项
1> 排序信息丢失
如果在排序操作之后执行了任何其他操作,则不能保证这些附加操作中会保留排序结果。这些操作包括 Select 和 Where 等。另外,采用表达式作为输入参数的 First 和 FirstOrDefault 方法不保留顺序。
如下代码:并不能达到反序排序的效果
using (var edm = new NorthwindEntities()){ IQueryablecc = edm.Customers.OrderByDescending(c => c.CustomerID).Where(c => c.Region != null).Select(c => c); foreach (var c in cc) Console.WriteLine(c.CustomerID);}
2> 不支持无符号整数
由于 实体框架不支持无符号整数,因此不支持在 LINQ to Entities 查询中指定无符号整数类型。如果指定无符号整数,则在查询表达式转换过程中会引发 NotSupportedException异常,并显示无法创建类型为"结束类型"的常量值。此上下文仅支持基元类型("例如 Int32、String 和 Guid")。
如下将会报异常的代码:
using (var edm = new NorthwindEntities()) { uint id = UInt32.Parse("123"); IQueryableprodut = from p in edm.Products where p.UnitPrice == id select p.ProductName; foreach (string name in produt) Console.WriteLine(name);}
上面的代码中,由于id是uint而不是Int32,String,Guid的标量类型,所以在执行到where p.UnitPrice ==id这个地方时,会报异常。
3> 不支持引用非标量闭包
不支持在查询中引用非标量闭包(如实体)。在执行这类查询时,会引发 NotSupportedException 异常,并显示消息"无法创建类型为"结束类型"的常量值。此上下文中仅支持基元类型('如 Int32、String 和 Guid')
如下将会报异常的代码:
using (var edm = new NorthwindEntities()) { Customers customer = edm.Customers.FirstOrDefault(); IQueryablecc = from c in edm.Customers where c == customer select c.ContactName; foreach (string name in cc) Console.WriteLine(name);}
上面的代码中,由于customer是引用类型而不是Int32,String,Guid的标量类型,所以在执行到where c==customer这个地方时,会报异常。
类型
支持
代码
查询
整数
符号
会报
排序
上下
上下文
地方
地方时
常量
标量
表达式
闭包
面的
非标
中指
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
全球服务器业务分布
滨湖区项目软件开发系统
软件开发服务几个点
ios 数据库迁移
我的世界可以加入服务器的mod
工业网络技术融入课程思政
asp服务器 易语言
阿里网络安全牛人
网络安全追踪案例
网络安全泄密事件对个人的影响
手机网络安全警示片心得
共青团网络安全直播观后感
云机房服务器统一管理
易宝软件开发有限公司
深圳软件开发倍训
数据库安装卡在46%
软件开发研究生毕业工资待遇
51自学软件开发
网络技术为工作的影响
联网收费系统网络安全
网络安全扫描技术的两大核心
网络安全故障
什么是全文数据库
传奇数据库6.1
数据库系统概论例题答案
水浒为什么连接不到服务器
平湖安卓软件开发
计算机与网络技术有哪些
网络技术对动画发展的影响
中兴网络安全员