1

カスタマイズされた一連の FieldTemplates で DynamicData を使用するかなり複雑な Web フォームがあります。すべてが .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

最後にこれを理解しました...

関連は、主キーではない列を使用していました。そのため、子テーブルに含まれるすべての列を主キーに設定することで、.NET 4 で再び機能します。

于 2012-07-17T01:21:02.293 に答える