我有一个实体框架请求检索许多不同的信息,使用几个内部联接,所以我使用动态列表作为返回类型,但我似乎无法找到一种方法来使其工作当迭代它时。迭代通过列表<dynamic>
我提出的要求,有4个表,但我再举一个例子,以简化,说我有表Room
和Kitchen
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的转换异常。我找不到解决这个问题的方法。我最初使用它是因为我返回的结果是匿名类型的,所以这就是我发现使返回成为可能的原因。
谢谢
首先,你为什么要将它转换为“动态”列表?其次,嵌套列表意味着数据是不正确的列表列表。你究竟想要做什么? – DavidG
我会避免使用'动态',除非你真的知道你在做什么。你能至少使用'object'吗? – user2023861
我强烈建议创建一个类型来处理结果。我不知道你为什么有两个foreach。查询的结果应该是这样的'变种dynamicList =新名单 { 新{RID = 1,KID = 1}, 新{RID = 2,孩子= 2}, 新{RID = 3, kId = 3}, new {rId = 4,kId = 4} };' –