我有一个相当复杂的web表单,使用带有一堆自定义FieldTemplates的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遗漏了这一列。我只是不明白为什么?
发布于 2012-07-17 09:21:02
终于想明白了..。
关联使用的列不是主键。因此,通过将子表中涉及的所有列都设置为主键,它可以在.NET 4中再次工作。
https://stackoverflow.com/questions/11507107
复制相似问题