EntityFramework 1.0 在查询中需要引用子表信息时的子表数据加载处理
2010-01-29 10:26
316 查看
我在执行下列查询时得到一个NullReferenceException:
var queryResult = from lr in currentClient.LocalRates
where lr.TaxYear == taxYear && lr.TaxType.TaxTypeName == taxTypeName && lr.LocalCode == localCode
select lr;
注意,在where部分的红字处,我引用了导航属性的对象的一个属性,但是在默认情况下,EF不会主动加载导航属性的对象,因此 lr.TaxType实际上是一个null,我这么写当然会出错。
解决方法是,让EF在加载LocalRates的时候,同时加载每个LocalRate的TaxType信息。正如以下代码所示:
var queryResult = from lr in currentClient.LocalRates.CreateSourceQuery().Include("TaxType")
where lr.TaxYear == taxYear && lr.TaxType.TaxTypeName == taxTypeName && lr.LocalCode == localCode
select lr;
利用Include方法,将需要包含的“子表”信息一并加载进来就好了。可以依次使用多次Include方法,将所需的多个子表同时加载进来,即 ObjectQuery.Include("Table1").Include("Table2") 这样的形式。
var queryResult = from lr in currentClient.LocalRates
where lr.TaxYear == taxYear && lr.TaxType.TaxTypeName == taxTypeName && lr.LocalCode == localCode
select lr;
注意,在where部分的红字处,我引用了导航属性的对象的一个属性,但是在默认情况下,EF不会主动加载导航属性的对象,因此 lr.TaxType实际上是一个null,我这么写当然会出错。
解决方法是,让EF在加载LocalRates的时候,同时加载每个LocalRate的TaxType信息。正如以下代码所示:
var queryResult = from lr in currentClient.LocalRates.CreateSourceQuery().Include("TaxType")
where lr.TaxYear == taxYear && lr.TaxType.TaxTypeName == taxTypeName && lr.LocalCode == localCode
select lr;
利用Include方法,将需要包含的“子表”信息一并加载进来就好了。可以依次使用多次Include方法,将所需的多个子表同时加载进来,即 ObjectQuery.Include("Table1").Include("Table2") 这样的形式。
相关文章推荐
- jquery 处理页面弹出层查询数据等待的操作(gif图片加载等待)
- 变量(查询到的数据)不存在:not available,但是需要用到,用try{}catch(e){}来处理
- js中对页面首次加载时需要数据,而数据是页面所填的问题的处理
- 如何将需要处理的数据加载到项目中Scala项目中
- Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
- page在处理post请求时需要处理数据的加载IPostBackDataHandler和事件的触发IPostBackEventHandler.
- SuperMap:Iclient调用IServer接口查询数据,加载数据集信息
- Ext.grid.EditorGridPanel单元格内套用下拉列表,且列表数据为动态加载,支持模糊查询,有描述信息
- 异步实现,查询大量数据时的加载
- 用Delphi中的TADOQuery查询Oracle10G中的数据表时,Open时提示"数据类型不被支持"的处理方法
- 如何处理大数据入库和查询问题
- MySQL处理千万级数据查询、分页(有些地方值得参考,不过原作者好像走歪了)
- resetlogs方式打开数据库,某数据文件需要recover,恢复失败的处理方式
- 海量数据排序——如果有1TB的数据需要排序,但只有32GB的内存如何排序处理?
- PLSQL_海量数据处理系列8_数据加载
- 第七章(十四)查询业务信息 -- 显示详细业务数据
- 添加查询删除+retrofit请求+okHttp请求+fresco加载图片+recyclerview加载数据二级购物车+视频播放
- spring 统一处理http request请求返回数据,返回加密信息等
- 信息与网络安全需要大数据安全分析
- Oracle 查询用户表信息,导入导出处理表空间不一致