0

私は Entity Framework の初心者で、最初の MVC アプリケーションを作成中です。単純なエンティティのビューの作成を実装していますが、(SQL Express 2005) ID 列の主キーに問題があります。私が理解しているように、フレームワークは Identity 列を処理し、SQL データベースに ID 値を生成させる必要があります。

ID 値を設定せずにビューの作成を使用して保存しようとすると、「値が必要です」というエラーが表示されます。ID に任意の値を指定すると、データベースの Identity 値を使用してデータベースに保存されます。指定した値ではなく、T-SQL がそこまで到達すると明らかに正しく生成されます。

Identity プロパティはデータベースの ID 列に設定され、StoreGeneratedPattern はモデルの「Identity」に設定されます (以下を参照)。

プロパティ名="ID" タイプ="int" Nullable="false" StoreGeneratedPattern="アイデンティティ"

何か不足していますか?この列に値が必要ないことをモデルに伝えるにはどうすればよいですか?

4

4 に答える 4

1

謎が解けました。この問題は、ID 列の列名として常に「ID」を使用するという命名規則の結果だったようです。

電話していたとき

http://.../Vacancy/Create

ルーティング エンジンはこれを

アクション = 作成; ID = ""

MapRoute から「{controller}/{action}/{id}」

モデルでID列の名前を「VacancyID」に変更すると、すべてが正常に機能します。

于 2009-05-01T15:55:50.923 に答える
0

「ValueisRequired」エラーがどこから来ているのかはわかりません。クライアントモデルの整数値はデフォルトでゼロになるため、常に値があります。スタックを見ずに、私の大げさな推測は、エラーがどこかから来ているということです。エラーが表示されたらスタックを確認し、アプリケーションのどの部分でエラーが発生しているかを把握します。

于 2009-05-01T14:06:06.070 に答える
0

私はカスタムルートを作成します、それはとにかく彼らが何であるかです...

于 2009-05-01T22:28:15.287 に答える
0

データベース スキーマを変更したくない場合は、id パラメータなしでルーティング ルールを追加できます。

routes.MapRoute(
   "Create",
   "{controller}/Create",
    new { action = "Create" }
);
于 2009-12-29T16:43:08.170 に答える