c# - 迭代列表<dynamic>

标签 c# asp.net-mvc entity-framework

我有一个 Entity Framework 请求来检索许多不同的信息,使用多个内部联接,因此我使用动态列表作为返回类型,但我似乎无法找到一种方法来使其在迭代时工作。

我提出了包含 4 张 table 的请求,但我将举另一个例子来简化,假设我有 table RoomKitchen

var result = from r in Room
             join k in Kitchen on r.idKitchen=k.id
             where (r.id == myIDPassedAsParameter)
             select new { rId = r.id, kId = k.id}
             .ToList<dynamic>();

现在,当尝试访问它时,我会执行以下操作:

foreach (var r in result)
{
    foreach (var item in r)
    {
        Console.WriteLine(item.rId + " " + item.kId);
    }

}

我在第二个 foreach 上不断收到转换异常。我找不到任何方法来解决这个问题。我最初使用它是因为我返回的结果是匿名类型,所以这就是我发现可以返回的原因。

谢谢

最佳答案

正如我在评论中所说,我会这样做

private class RoomKitchenPair
    {
        public int RoomId { get; set; }

        public int KitchenId { get; set; }
    }

var result = (from r in Room
         join k in Kitchen on r.IdKitchen equals k.Id
         where (r.Id == myIDPassedAsParameter)
         select new RoomKitchenPair { RoomId= r.Id, KitchenId = k.Id})

foreach (var r in result)
{
    Console.WriteLine(r.RoomId + " - " + r.KitchenId );
}

关于c# - 迭代列表<dynamic>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716418/

相关文章:

C# Selenium Firefox - 错误异常 "Browsing context has been discarded"

c# - 控制台应用程序等待 keyup

java - 无法将 C# 之间的日期代码 fragment 翻译为 Android

asp.net - ASP.NET MVC 中请求的日期 header

javascript - 是否有自动生成 JavaScript 代理代码来调用 ASP.NET MVC 操作方法的项目?

asp.net - SimpleMembershipProvider无法正常工作

c# - 将数据传递到我的 View 时出错?

ios - 如何绕过 iOS 应用程序中的 SSL 安全错误?

c# - 如何在 Entity Framework 中定义表达式选择嵌套一对一关系

vb.net - Linq 查询处理空值