Linq 在 .Substring() 上抛出异常

2024-05-13

我遇到了一种情况,我需要让 LINQ to Entities 查询根据字符串的长度返回一个子字符串。 这是查询:

var query = (
    from f in Context.Files
    orderby f.DateAdded descending
    select new
    {
        Concerns = f.Concerns.Name,
        Sender = f.Sender.Name,
        CategoryCount = f.Categories.Count(),
        DateAdded = f.DateAdded,
        Comment = (f.Comment == null || f.Comment.Length < 5) 
            ? f.Comment : f.Comment
    }).Take(10);

所以我正在做的是获取最后 10 个添加的文件类型实体,然后从中选择一组属性以显示在列表视图中。有些是纯字符串(关注点、发件人)。 CategoryCount 返回与 File 对象关联的类别数。

但是,如果注释长于给定长度,我希望将其截断。在上面的代码中,一切都工作正常。现在当我替换这一行时:

Comment = (f.Comment == null || f.Comment.Length < 5) 
    ? f.Comment : f.Comment

有了这一行:

Comment = (f.Comment == null || f.Comment.Length < 5) 
    ? f.Comment : f.Comment.SubString(0,5)

应用程序抛出 XamlParseException (???)

对与指定绑定约束匹配的“DocumentManager.Views.ListEntriesView”类型的构造函数的调用引发了异常

我实在不知道为什么它会这么做。 LINQ 不支持 SubString 方法吗?

希望有人可以在这里帮助我。在那之前,我将保持原样。

编辑2(不知何故,我的第一次编辑丢失了。所以我正在重做它): 根据我收到的评论,我将代码更改为这样,现在它可以工作了:

var query = App.Context.Files.OrderByDescending(File => File.DateAdded).Take(10).AsEnumerable()
            .Select(File => new
            {
                Concerns = File.Concerns.Name,
                Sender = File.Sender.Name,
                CategoryCount = File.Categories.Count(),
                DateAdded = File.DateAdded,
                Comment = (File.Comment == null || File.Comment.Length < 100) ? File.Comment : File.Comment.Substring(0, 100) + "..."
            });

我忘了提及我正在使用 SQLite。所以也许 Substring 没有在 SQLite EF Provider 中实现。


实际上这不是 LINQ 的错。您的模型绑定到 IQueryable,即数据库直接支持的例程(其他所有内容都会引发异常)。您应该在某个时候使用 AsEnumerable 方法来执行其他所有操作。

阅读更多内容,请阅读 Bill Wagner 在此处解释 IQueryable 和 IEnumerable 之间的区别:

http://msdn.microsoft.com/en-us/vcsharp/ff963710 http://msdn.microsoft.com/en-us/vcsharp/ff963710

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq 在 .Substring() 上抛出异常 的相关文章

随机推荐

  • iPhone:隐藏搜索栏中的空格键

    我又要显得傻了 但这总比发疯好 这是我的问题 我有一个 UISearchBar 其中有一个我想隐藏的scopeBar 我这样做 searchBar showsScopeBar NO 我也打电话给 searchBar becomeFirstR
  • 如何使用 zend 导入 CSV

    如何使用 zend 框架导入 CSV 文件 我应该使用 zend file transfer 还是有任何我必须研究的特殊类 另外 如果我使用 zend file transfer 是否有任何特殊的 CSV 验证器 你不必使用任何 zend
  • 在react-navigation中动态更改DrawerNavigator的drawerPosition配置

    我的主要路线有一个 DrawerNavigator 配置 const App DrawerNavigator DrawerRoutes initialRouteName Main contentComponent navigation gt
  • 微服务、amqp 和服务注册/发现

    我正在研究微服务架构 实际上我想知道一些事情 我非常同意使用 返回 服务发现来在基于 REST 的微服务上发出请求 我需要知道发出请求的服务 或至少是服务器集群的前端 在哪里 因此在这种情况下能够发现 ip port 是有意义的 但我想知道
  • DataGridView SortCompare 事件不会触发

    使用 VS2008 C 和 NET 3 5 我正在使用数据绑定 DataGridView 控件来显示从 Web 服务读取的表格数据 在某些情况下 有一个数字列需要排序 我尝试了几种不同的方法来使其工作 但该列最终仍然按字母顺序排序 即 1
  • 在 Protractor / Webdriver 中等待页面重定向

    我有一个测试 单击按钮并重定向到用户仪表板 当发生这种情况时 Webdriver 返回 javascript error document unloaded while waiting for result 为了解决这个问题 我插入brow
  • Elasticsearch 关于“空索引”的查询

    在我的应用程序中 我使用了几个elasticsearch索引 它们在初始状态下不包含索引文档 我认为这可以称为 空 该文档的映射是正确且有效的 该应用程序还有一个包含实体的关系数据库 这些实体可能具有在 elasticsearch 中关联的
  • Node.js 工作线程中的 I/O 性能

    下面是一个工作线程示例 在本地计算机上同步 I O 大约需要 600 毫秒 const fs require fs const isMainThread Worker parentPort workerData require worker
  • 如何让左浮动和右浮动在同一条线上?

    问题 The left part nav ul li which float left and the right part nav search which float right are not in a line it should
  • 手动设置时间和日期时,iOS 10 中的重复每日本地通知不会被触发?

    我正在尝试通过触发每日通知来测试 iOS 10 中的本地通知 我正在使用以下示例项目 通知UI 演示 https github com appcoda NotificationsUI Demo 该应用程序中有以下代码之一 let calen
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • 抑制“程序无法启动,因为 X.dll 丢失”错误弹出窗口

    我有一个Python程序 它使用os system来执行各种命令 它不能使用subprocess因为它必须向后兼容到 Python 2 0 在 Windows 上 有时该命令会引用异常目录中的 DLL 因此我会收到臭名昭著的 程序无法启动
  • 关闭WCF代理

    当涉及到 WCF 代理时 我始终遵循 try Close catch Abort 的指导 我现在面临一个代码库 它在 MVC 控制器中创建代理并让它们超出范围 我认为我们需要编辑代码库以使用 try Close catch Abort 但存
  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • C - 对浮点数组进行排序,同时跟踪索引

    我有一个包含 3 个浮点值的数组 float norms 3 norms 0 0 4 norms 1 3 2 norms 2 1 7 我想按降序对这个数组进行排序同时跟踪数组中值的原始索引 换句话说 给定数组norms 0 4 3 2 1
  • 动画完成后,JQuery Animate 具有“弹跳”效果吗?

    我一直在这里寻找答案 谷歌等 但似乎无法完全确定这个问题 我有一个 ID 为 pin01 的图像 这是地图上的一个图钉 我在 div 中向下动画化 落在地图图像上 想想 Google 地图 我的 JQuery 运行得很好 是这样的 pin0
  • 使用mockito来模拟AccountManager

    我正在使用mockito 在活动测试中模拟AccountManager 所以 我的测试代码如下 public class PressuresListActivityUnitTest extends ActivityUnitTestCase
  • 以系统的方式报告 Prolog 中查询失败的“原因”

    我正在 Prolog 中寻找一种方法 模式或内置功能 我可以用它来返回why一组谓词失败 至少就数据库中的谓词而言 当用户在系统中提出查询时 我试图能够说的不仅仅是 那是错误的 例如 假设我有两个谓词 blue 1如果某物是蓝色的 则为真
  • 带有 geom_errorbar 的position_dodge

    我有以下代码 require ggplot2 pd lt position dodge 0 3 ggplot dt aes x Time y OR colour Group geom errorbar aes ymin CI lower y
  • Linq 在 .Substring() 上抛出异常

    我遇到了一种情况 我需要让 LINQ to Entities 查询根据字符串的长度返回一个子字符串 这是查询 var query from f in Context Files orderby f DateAdded descending