11

ドメイン サービス (VS 2010 Silverlight ビジネス アプリケーション) で、特定の値として出てきた検査の読み取り結果を返すクエリを作成しようとしています。データベースは次のように設定されています。

Locations
  a) Inspections
     b) InspectionItems
        c) InspectionReadings       
  a) Areas
     b) Inspections
        c) InspectionItems
           d) InspectionReadings

ご覧のとおり、エリアとロケーションの下にロケーションの検査測定値があります。StatusList という名前の POCO があります。

    public class StatusList
    {
        [Key]
        [Editable(false)]
        public Guid ID { get; set; }

        public string LocationName { get; set; }

        public DateTime LastInspectionDate { get; set; }

        public string Status { get; set; }
    }

クエリの結果を返すために使用しています:

    public IQueryable<StatusList> GetLocationStatus()
    {
        var status = (from location in this.ObjectContext.Locations
                      where location.InspectionReadings.Status == value
                      orderby a.DateTaken                          
                      select new LocationStatusList()
                      {
                          ID = a.ID,
                          LocationName = d.Name,                              
                      }).ToList<StatusList>();
        return status;              
    }

残念ながら、タイトルにエラーが返されます。リストが明らかにリスト項目であり、結果を変換したため、理由がわかりません

.ToList<LocationStatusList>
4

1 に答える 1

29

問題は、まさにあなたが に電話したからToList()です。を返すと宣言しましたが、 をIQueryable<LocationStatusList>実装List<T>していませんIQueryable<T>

オプション (1 つ選択):

  • ToList通話を削除する
  • 戻り値の型をIEnumerable<LocationStatusList>IList<LocationStatusList>または場合によっては変更しますList<LocationStatusList>
  • AsQueryable()後に電話するToList():

    ... as before ...
    .ToList().AsQueryable();
    

呼び出しに型引数は必要ないことに注意してください。これはToList、コンパイラが推論するものと同じです。

于 2012-05-09T12:30:30.323 に答える