我有一个EF查询,该查询返回几个联接表的匿名类型。我将此作为动态传递给另一个函数。有什么方法可以将动态转换为已知匿名类型的匿名类型?如果有办法做到这一点,我认为将其作为对象传递比通过动态传递更好,这是正确的吗?

...
var appts = (from a in dbc.tblAppt join b in dbc.tblApptTypes on a.Type equals b.Type select new {a, b}).ToList();
If (appts.Any())
    ProcessAppts(appts);
}

void ProcessAppts(dynamic appts)
{
    var AnonTypeAppts = appts as (new {tblAppt, tblApptTypes}); // This bit here
}

最佳答案

不。匿名类型是...匿名。您不能像在代码中那样尝试将变量强制转换为匿名类型。而且最好不要通过其他方法传递它们。它们应该放在里面。而且,您实际上不应该使用dynamic

我建议创建一个“真实”类型,您可以将其传递给另一种方法。

09-26 12:26