3

次のコードを適用しました:

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 + ")"
};

そして、オブジェクト参照エラーが発生しています。「新規選択」を指しています。正しい方法は?

4

2 に答える 2

3

問題はCompanyCountryまたはNaicsCodeですnull。これらのプロパティにアクセスする前に、これを確認する必要があります。たとえば、クエリを次のように書き直すことができます。

var country = from cnty in this.GetAll<CompanyDefinition>()
              where cnty.IsImported && cnty.Company != null && cnty.Country != null && cnty.NaicsCode != null
              select new {
                  ...
              }
于 2012-08-24T14:22:42.537 に答える
0

遅延読み込みを使用している場合、ToList()メソッドの使用は適切ではありません。を呼び出した後ToList()IQueryable<>オブジェクトは実体化されIEnumerable<>ます。したがって、データベースは照会CompanyまたはCountry参照されません。関数を削除してみてください ToList()

于 2012-08-24T14:21:18.730 に答える