【发布时间】:2013-03-20 14:00:55
【问题描述】:
我需要帮助来理解这件事。为什么在下面的代码中变量“ejes”和“habilidades”被解析为“动态”而第三个被解析为IEnumerable<dynamic>。这会影响接下来运行的代码,当我尝试调用扩展方法“Count()”时出现异常,因为“ejes”和“habilidades”不是 IEnumerable。它们是同一方法“Database.Query”的结果。
这里是sn-p:
var db = Database.Open("froned");
db.Execute("begin transaction");
try
{
var asignacion = db.QuerySingle("select * from asignacion_avanza where id_asignacion = @0", id_asignacion);
var ejes = db.Query(String.Format(@"
select id_eje
from asignatura_eje_nivel
where id_nivel = {0}
and id_asignatura = {1}",
asignacion.id_nivel,
asignacion.id_asignatura));
var habilidades = db.Query(String.Format(@"
select id_habilidad
from asignatura_habilidad_nivel
where id_nivel = {0}
and id_asignatura = {1}",
asignacion.id_nivel,
asignacion.id_asignatura));
var dificultades = db.Query("select id_dificultad from dificultad");
var c_dif = dificultades.Count();
var c_eje = ejes.Count();
var c_habilidades = habilidades.Count();
我放了一个调试器的图像来显示变量的运行时类型。
【问题讨论】:
-
很棒的 VS2012 的深色主题。您应该将图片的链接放在您的问题中,很难从图片中读取那么小的文字(而且我懒得查看源代码)。
-
是的,在正常尺寸下有点难以看清,但只需按 ctrl 键并向上滚动即可放大。图片质量很好,因此即使放大很大也可以完美阅读.
标签: c# dynamic ienumerable webmatrix