在LINQ查询中使用动态类型

时间:2014-11-05 08:23:47

标签: c# linq dynamic

我正在使用LINQ来查询数据库。我在查询中使用动态关键字。我不深入了解这种动态机制,所以我不明白发生了什么。 情况如下。以下代码部分:

var qGroup = qLocalOrd.GroupBy("new(...)", "it");
var qGroupCast = (qGroup as IQueryable<IGrouping<dynamic,dynamic>>).AsEnumerable();

var qAgg = from ordg in qGroupCast
select new {
ordg.Key,
Agg = (ordg.Key.OsID + " " + ordg.Key.NameOs + "\n" + 
(ordg as IEnumerable<dynamic>).Aggregate("Составные части:\n", ...).Trim('\n') + ...)
};

工作得很好。但是当我把它添加到最后:

var qPlain = qAgg.Cast<dynamic>().AsQueryable().Select("new(Key.SubSchet, Key.NameSubSchet, ...)");
qPlain.Dump();

我收到的错误如“无字段”键“存在于类型”对象“”中。如果我使用

,它也是一样的
(qAgg as IEnumerable<dynamic>)

所以在这一点上,qAgg元素的动态处理被打破了。

为什么会发生这种情况以及如何使这件事发挥作用?

0 个答案:

没有答案