1

我有一个相当复杂的 Web 表单,它使用带有一堆自定义 FieldTemplate 的 DynamicData。在 .NET 3.5 SP1 下一切正常...然后我转换为 .NET 4.0 并且某些字段拒绝加载,出现如下错误:

System.InvalidOperationException:表 'Tickets' 没有名为 'Contact' 的列。

堆栈跟踪显示 System.Web.DynamicData.MetaTable.GetColumn(String columnName) 抛出实际异常,因此认为该函数发生了一些变化。不知道是什么,但是... :(

我已经验证了这些列在那里(我可以使用 Eval() 等访问,但 DynamicControl 找不到这些列。)更糟糕的是,有几个字段可以工作,我看不到有效的列和无效的列之间有什么真正不同。所有不起作用的都是关联,但也有一些关联也有效。

编辑:刚刚更改了问题标题...我使用 System.Web.DynamicData.MetaTable.GetTable() 跟踪并抓取了 MetaTable 本身,果然 MetaTable 缺少该列。我只是不明白为什么?

4

1 回答 1

0

终于想通了……

关联使用不是主键的列。因此,通过将 Child 表中涉及的所有列设置为主键,它可以在 .NET 4 中再次运行。

于 2012-07-17T01:21:02.293 回答