1

以下のコードのように、関数内にLINQクエリがあります。

public object RetrieveFday(DateTime _dt)
    {
 var fp = from f in RSC.tbl_FoodPlan join food in RSC.tbl_Food
                              on f.FoodID equals food.FoodID
                              where f.Day == _dt
                              select new 
                              {
                                 FoodName= food.Name,
                                 Fholiday= f.HoliDay
                              };


            return fp;
   }

今、私はこの関数を別の場所で呼び出します。結果を取得してそれらを分離し、それぞれを異なるラベルで表示したいのですが、関数を呼び出して結果を取得すると、それらのプロパティを読み取ることができません。

var test = RetrieveFday(dt);

結果としてプロパティをどのように読み取ってテストすることができますか?

4

1 に答える 1

0

匿名型は戻り型として使用するためのものではないため、投影データを保持するための新しいクラスを作成するだけです。

public class FoodNameAndHoliday
{
    public string FoodName { get; set; }
    public string Fholiday { get; set; }
}

そして、 :RetrieveFdayでクラスを使用するように関数を変更します。select

public IEnumerable<FoodNameAndHoliday> RetrieveFday(DateTime _dt)
{
     var fp = from f in RSC.tbl_FoodPlan join food in RSC.tbl_Food
                          on f.FoodID equals food.FoodID
                          where f.Day == _dt
                          select new FoodNameAndHoliday
                          {
                             FoodName= food.Name,
                             Fholiday= f.HoliDay
                          };
      return fp;
}

そして、次のように関数を使用できます。

var test = RetrieveFday(dt);
foreach(var item in test)
{
    DoSomethingWith(item.FoodName);
    DoSomethingWith(item.Fholiday);
}
于 2012-07-15T06:38:43.797 に答える