我已应用以下代码:
var country = from cnty in this.GetAll<CompanyDefinition>().ToList()
where cnty.IsImported = true
select new {
CompanyDefinitionID = cnty.CompanyDefinitionID
, CompanyDefinitionName = cnty.Company.CompanyName + "(" + cnty.Country.CountryCode + "," + cnty.NaicsCode.NaicsCode1 + ")"
};
我收到对象参考错误。它指向“选择新”。什么是正确的方法?
答案 0 :(得分:3)
问题是Company
,Country
或NaicsCode
是null
,在尝试访问其属性之前,您需要检查此问题。例如,您可以将查询重写为:
var country = from cnty in this.GetAll<CompanyDefinition>()
where cnty.IsImported && cnty.Company != null && cnty.Country != null && cnty.NaicsCode != null
select new {
...
}
答案 1 :(得分:0)
如果您正在使用延迟加载,那么使用ToList()
方法是不正确的。致电ToList()
后,IQueryable<>
对象具体化为IEnumerable<>
;因此,不会查询Company
或Country
引用的数据库。尝试删除ToList()
功能。