如何在连接结果中返回多列来查看模型

时间:2014-09-10 13:53:53

标签: asp.net-mvc join

我想在连接结果中返回多个列并填写视图模型(VMFoodFoodMeal)。 例如,我想通过Join结果填充VMFoodFoodMeal 感谢

 IEnumerable<VMFoodFoodMeal> _fmt =  (from e in db.FoodProgramMealFood
                        join j in db.Foods on e.FoodId equals j.Id
                 select new
                 {
                     Id = e.Id,
                     Name = j.Name,
                 });

2 个答案:

答案 0 :(得分:0)

很难理解你想要什么,但作为例子,你可以在群组加入部分查看here

以下是一个示例代码:

public void Linq103() 
{ 
    string[] categories = new string[]{  
        "Beverages",  
        "Condiments",  
        "Vegetables",  
        "Dairy Products",  
        "Seafood" }; 

    List<Product> products = GetProductList(); 

    var q = 
        from c in categories 
        join p in products on c equals p.Category into ps 
        select new { Category = c, Products = ps }; 

    foreach (var v in q) 
    { 
        Console.WriteLine(v.Category + ":"); 
        foreach (var p in v.Products) 
        { 
            Console.WriteLine("   " + p.ProductName); 
        } 
    } 
}

结果:  饮料:   柴   常   瓜拉那幻想曲   Sasquatch Ale   Steeleye Stout   CÃ'tedeBlaye   Chartreuse verte   怡保咖啡   ...

答案 1 :(得分:0)

如果要在不使用foreach语句的情况下将连接结果发送到模型,则必须使用此代码

IEnumerable<VMFoodFoodMeal> _fmt = (from e in db.FoodProgramMealFood
                        join j in db.Foods on e.FoodId equals j.Id
                        select new VMFoodFoodMeal()
                         {
                            Id = e.Id,
                            Name = j.Name,
                         });

例如在上面的代码中我有一个视图模型(VMFoodFoodMeal)并希望通过连接结果填充它。 我必须在select中创建我的模型的新实例,然后填充其属性。 感谢