小编Rus*_*Uhl的帖子

ColdFusion - 嵌套变量(动态变量读取)

编辑:问题是重复的,但答案不是!

我有以下代码:

<cfquery name="contact" datasource="thesource">
  SELECT * FROM #table# WHERE foo = '#bar#'
</cfquery>
Run Code Online (Sandbox Code Playgroud)

然后是(这是问题部分):

<cfloop from="0" to="9" index="i">
  <cfset thisvar = Evaluate("contact.check" & i) />
  <cfoutput>
    #thisvar#
  </cfoutput>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

在执行时,它会抛出一个很好的大"变量contact.check0未定义".但是,#contact.check0#如果硬编码,输出会很好.

有想法该怎么解决这个吗?

注意:我在循环访问数据库查询结果时看到了Coldfusion - 变量字段名称,虽然问题似乎完全相同,但解决方案不起作用.根据评论,我也得到一个"无法转换为数字"的错误.我注意到Tomalak提到"有点抓",但从来没有说过它是什么.在他链接到的文章中,我尝试了每个语法上等效的形式,并且它都会抛出错误...要么无法转换为数字,要么未定义.

此外,我知道Evaluate()有开销和"不应该使用".我会采取任何有效的解决方案,无论是否有评估.

这是在ColdFusion 9上.

谢谢

编辑:虽然类似的问题已经有了答案,但这个问题有不同的原因.见下面接受的答案.

variables coldfusion nested

1
推荐指数
1
解决办法
486
查看次数

LINQ中的动态表名称

我正在尝试LINQ使用动态表名执行一些命令。例如,代替:

var o = (from x in context.users select x);
Run Code Online (Sandbox Code Playgroud)

我想使用类似:

var o = (from x in getTableObjectByName("users", context) select x);
Run Code Online (Sandbox Code Playgroud)

或多或少。到目前为止,这是我编译和运行的代码:

using (MySiteEntities ipe2 = new MySiteEntities()) {
    var propinfo1 = Type.GetType("MySiteNamespace.MySiteEntities").GetProperty("users");
    var propval1 = propinfo1.GetValue(ipe2, null);
}
Run Code Online (Sandbox Code Playgroud)

运行,但始终返回零记录。用户表最明确地包含记录,无论如何,当我直接使用上述第一种方法直接调用它时,都会得到所有记录。如何修改代码以实际提取记录,而不仅仅是空集合?

编辑:我也尝试过:

using (MySiteEntities ipe = new MySiteEntities())
{
    var prop = Type.GetType("MySiteNamespace.MySiteEntities").GetProperty("users");
    Type dbsetType = typeof(DbSet<>);
    dbsetType = dbsetType.MakeGenericType(Type.GetType("MySiteNamespace.user"));

    Type t = dbsetType.GetType();
    var val = prop.GetValue(ipe, null);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,代码不仅会运行,而且实际上会按预期返回结果。但是,val是一个对象。我需要将其强制转换为type DbSet<user>,这很容易,除了该参数user仅在运行时才知道....强制转换也必须是动态的。我尝试使用Convert.ChangeType(val, …

c# linq reflection entity-framework

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

coldfusion ×1

entity-framework ×1

linq ×1

nested ×1

reflection ×1

variables ×1