Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >实体框架:实体子项中条件相反的查询结果错误

实体框架:实体子项中条件相反的查询结果错误
EN

Stack Overflow用户
提问于 2015-02-20 06:07:12
回答 1查看 76关注 0票数 0

我使用的是实体框架。

我有个案子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Partial Public Class Myobj
      Public Property id As Integer
      Public property name as string
      Public Overridable Property chld As ICollection(Of chld) = New HashSet(Of chld) 
   End Class


 Partial Public Class Myobj
     Public shared cond1 as DateTime
      <NotMapped> Public ReadOnly Property vls As integer
      Get
            Return chld.AsQueryable.Where(Function(t2) t2.date1<cond1).Select(Function(t3) t3.quantity).DefaultIfEmpty.Sum()
      End Get
End Property
End Class


Partial Public Class chld
    Public Property id As Integer
    Public Property date1 as DateTime
    Public Property quantity as Integer
    Public Property ParentID as integer
    Public Overridable Property MyObj1 As MyObj
End Class 

现在在我的表单上,我有这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Dim dt1 as DateTime=CDate("08/08/2014")
Myobj.cond1=dt1

 Dim list1 = (From t In context.MyObj Select New With { _
      .Parent = t, _
      .chl =  (From t2 In t.chld.AsQueryable.Where(Function(t3) t3.Date1>=dt1) Select t2) 
}).ToList

正如您所看到的,在未映射的属性vls上,计算子对象在日期"08/08/2014“之前的数量总和。

在主查询中选择日期在"08/08/2014“之后的子项

此查询始终为Myobj1中的每个项目在vls属性中生成0。( !!但是根据数据库中的数据,这不是真的!!)。

为什么这个查询产品会有这样的结果?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-02-20 21:47:18

你没有说,但是你已经禁用了延迟加载。这意味着在查询结束后,MyObj实体的chld集合中只有chld对象>= "08/08/2014“。实体框架通过关系修复来填充这些集合。

因此,如果你访问MyObj.vls,没有chld的< "08/08/2014“。如果启用了延迟加载(并且上下文仍然在作用域中),这将触发加载完整的chld集合,您将获得所需的结果。

但是,查询包含chldMyObj实体,然后在内存中进行处理会更有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28622634

复制
相关文章
微信小程序----全局状态管理 (便于全局埋点等操作)
说明 由于我是一个有着一颗玻璃心的博主,导致在2018年后博客很少更新。原因是由于我的分享并没有解决到部分人的问题,而导致被骂了。当时这颗玻璃心就碎了,所以这两年以来很是消极,博客很少更新。这里给那些关注我,支持我的朋友说声【对不起】!前段时间,看了一个工作两年时间博主的 2021 年 flag,突然回首,还有很多记忆。所以,我决定以后每周最少一篇博客,记录我的学习和成长。谢谢! 需求场景 小程序开发完成,接到需求:需要对小程序的所有页面【onLoad】生命周期进行埋点,对页面中的点击事件进行埋点。
Rattenking
2021/02/01
3.1K0
thymeleaf全局常量定义
目测应该是重写这货就可以了,talk is cheap,show me the code
小尘哥
2018/08/15
1.5K0
[CodeIgniter4]-公共函数和全局常量
CodeIgniter 你可以在任何地方使用它们,并且不需要加载任何 类库或辅助函数。
landv
2020/03/05
3K0
修改prototype使Event支持observe任何对象
上次对js自定义事件做了一些介绍,这次修改prototype使得Event对象支持observe任何对象,代码如下: var Event = {     observers: false,     observe: function(element, name, observer, useCapture) {         if(typeof element == 'string')             element = document.getElementById(element);      
用户1183026
2018/01/19
6370
如何使程序在Linux后台运行
这样一来,test程序就在后台运行了。但是,这样处理还不够,因为这样做虽然程序是在后台运行了,但log依然不停的输出到当前终端。因此,要让终端彻底的清静,还应将log重定向到指定的文件:
阿凡亮
2020/04/14
8.8K0
全局复制:允许你复制任何应用内文字
文章更新:   20161119 初次成文   20170420 增加了按键触发复制模式和Android7.0+上磁贴的说明 应用名称:全局复制 应用包名:com.camel.corp.universalcopy 备注说明:无   这段时间事情实在是比较多,所以博客的更新又被搁置了,之前发的那几篇干货篇幅都好长好长,虽然写的时候花了不少时间但是估计也没多少人看(笑),倒是好久没有为大家推荐应用了,正好这几天自己空闲时间比较多,所以...(强行拖出片场)   话不多说马上开始介绍我们今天的嘉宾"全局复制"
美丽应用
2018/07/20
2.6K0
程序员应该如何提高自己?
想法和问题 当程序员已经处于中级时,应如何提高自己?有很多关于“学习编程”的资源,能够让人从 0 到新手(虽然这些资源中大多数的质量是值得商榷的),但是怎么样才能将中级水平提高到专家级?如何构建允许我在高级别编写代码的心理模型? 在这篇文章中,我将讨论关于普遍性能改进的一些理论,然后讨论一些程序员用于实践的方法(以及我对这些实践的想法),然后是我对改进成为中级或更优秀程序员的最佳方法所作出的结论。 关于普遍性能改进的快速指南 我最近一直在阅读大量关于性能改进的内容,大多数文献使用 K. Anders Eri
企鹅号小编
2018/02/06
5380
Antd 全局化配置使组件中文化
1、引入ConfigProvider:使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效;
用户9914333
2022/07/22
1K0
获取任何小程序源码
这种方法,并不能反编译出所有的小程序源码,请自知! 具体的局限请看:qwerty472123大神的md文件  https://github.com/qwerty472123/wxappUnpacker 
似水的流年
2019/12/06
4.3K0
回归制造本质——边缘计算使能全局效率提升
边缘计算越来越受到了来自IT和OT领域的企业的关注,本文旨在从制造本质—从源头分析如何去推进其实现。
CloudBest
2019/08/16
5780
回归制造本质——边缘计算使能全局效率提升
屏幕上的文字如何才能更清晰,舒服,便于阅读?
1、点击[显示适配器属性] 2、点击[颜色管理] 3、点击[颜色管理] 4、点击[识别监视器] 5、点击[高级] 6、点击[校准显示器] 7、点击[下一步] 8、点击[下一步] 9、点击[下一步] 10、点击[重置] 11、点击[下一步] 12、点击[跳过亮度和对比度窗口] 13、点击[下一步] 14、点击[下一步] 15、点击[当前校准] 16、点击[完成] 17、点击[下一步] 18、点击[下一步] 19、点击[下一步]
裴来凡
2022/05/28
8340
屏幕上的文字如何才能更清晰,舒服,便于阅读?
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
基于Transformer的体系结构在自然语言处理(NLP)领域取得了巨大的成功。受Transformer在语言领域的巨大成功的启发,Vision Transformer被提出,并在ImageNet数据集上取得了优秀的性能。Vision Transformer就像NLP中的word token一样,将图像分割成patches并输入Transformer之中,并通过Transformer的几个multi-head self-attention层来建立远程依赖关系。
集智书童公众号
2022/02/11
9440
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
程序猿修养 日志应该如何写
在和小伙伴讨论日志的时候,小伙伴说的是文件的读写,而实际上的日志在广义上包含了任何的输出方式,无论是控制台还是文件。而日志记录在哪不重要,重要的是什么日志应该记录,应该怎么记录和记录什么内容
林德熙
2020/04/08
1.4K0
如何让任何小程序都支持在PC端打开?
​随着小程序的发展,出现了越来越多小程序在PC端打开的需求。很多程序员同行都想了解:小程序支持在windows系统、mac、统信UOS等桌面操作系统中打开吗?
海岛船长加西亚
2023/05/08
8330
微信小程序如何实现全局状态管理?
globalData和缓存应该是大家比较熟悉的,但这二者会随着项目的不断迭代逐渐变的混乱和不易维护。
inline705
2023/06/10
1.8K0
微信小程序如何实现全局状态管理?
被黑客攻击后,平台方不承担任何责任
最近大家都在关注超星学习通被黑客攻击,用户数据在外网被售卖的事情,本来这种事情已经发生过很多次了,也不太想蹭这个热点,给大家造成恐慌。
信安之路
2022/10/04
8790
被黑客攻击后,平台方不承担任何责任
如何编写便于团队阅读和维护的SQL语句
作为结构化查询语言 SQL 的语法相对于其他编程语言非常简单,常用的关键字也就几个,完成同样的统计功能,SQL 代码量较少,我们很容易将 SQL 代码映射到二维表中的数据,SQL 不同操作的代码其实就是对应着二维表的不断变换。由于SQL语句学习简单,表达能力强,上手容易的有点,所以在数据处理中SQL语句就成为了最通用的和最优先考虑处理方式。在大数据中 SQL 应用主要分两种:一种是周期性的统计任务,另一种是分析任务。
deephub
2021/09/15
1.1K0
如何使 Python 程序快如闪电?这里有妙招
所以,让我们来证明那些人是错的——让我们看看如何提高 Python 程序的性能并使它们变得非常快!
AI研习社
2020/02/21
5850
点击加载更多

相似问题

为了便于访问,在全局元素中应该如何处理标题?

24

如何使C程序中的全局常量(跨多个文件工作)?

710

我应该如何分割我的js-文件以便于维护?

22

为了便于检索,我应该如何存储大量的流量数据?

31

在C++程序中应该把全局常量放在哪里?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文