1

VB.Net Web フォーム プロジェクトで「モデル」として使用している C# EF 6 Database First プロジェクト (「DocRetData」) があります。「Web Forms Scafolding」拡張機能も使用しています。EF プロジェクトへの参照を追加し、「新しい足場アイテム」を作成しました。プロジェクトがコンパイルされます。それを実行して「デフォルト」ページにアクセスすると、アイテムが正常にリストされますが、新しいアイテムの編集または作成に移動すると、ForeignKey_EditField クラスの GetData() 関数で System.ArgumentNullException が発生します。次のようになります。

Public Function GetData() As IQueryable
    Dim entityType = Type.[GetType](Me.DataTypeName)
    Return _db.[Set](entityType).AsQueryable()
End Function

これは、何らかの参照の競合に関係している必要があります。データ プロジェクトを削除し、モデルを Web フォーム プロジェクト内のクラスとして追加し、すべて同じ手順を実行すると、エラーが発生せず、編集できるためです。またはアイテムを作成します。

ここでのデータ構造はかなり単純なものです。ここで参照しようとしている Table(Object) の構造は次のとおりです。

[AppSettingID] [int] IDENTITY(1,1) NOT NULL,
[CountyID] [int] NOT NULL,
[Name] [varchar](30) NOT NULL,
[VariableName] [varchar](50) NOT NULL,
[Setting] [varchar](4000) NOT NULL,
[FieldDataTypeID] [int] NOT NULL,

ここで、CountyID と FieldDataTypeID は、他のテーブルへの外部キーです。

entityType が null であるため、Return ステートメントでエラーが発生します。Me.DataTypeName は「DocRetData.County」です。これは、VB.Netが名前空間を処理する/処理しない方法と関係があると思いますが、それを追跡することはできませんでした.

ありがとう

dbl

4

1 に答える 1