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 回答