1

今は午前 1 時 30 分です。ここに紛らわしい部分がありましたら申し訳ありません。

SQLMetal を使用して、データベース テーブルのデータ コンテキストを生成しています...

私はコマンドを使用しました:

sqlmetal.exe /server:dbsvr\sqlexpress /database:"TestDB" /user:sa /password:password /namespace:DB_Data /context:DBDataContext /code:DBDataContext.cs /map:DB.map

これはすべて正常に機能し、テーブルなどですべての CRUD 機能を実行できます...ほとんど..

タイプ「uniqueidentifier」のフィールドを持つ「ヘッダー」テーブルがあります...新しいレコードを挿入するときに、データベースに値をレコードに割り当てさせ、ヘッダーテーブルレコードを新しいGUIDで更新する必要がありますデータベースから。現時点では、テーブルに追加する新しいレコードの id guid フィールドはすべてゼロです。そのため、2 番目のレコードを追加しようとすると、重複キーで失敗します。

答えを探しているうちに、この投稿に出くわしました: SQL Server 2008 GUID column is all 0's

dbml で「Auto Generated Values」と「Auto Sync」をそれぞれ「True」と「OnInsert」に設定することが言及されています。

私の問題は、SQLMetal コマンドを実行したときに作成されなかったため、dbml ファイルがないことです。代わりに .map ファイル生成パラメータを使用しました.「/dbml」フラグがあることに気付きましたが、どれを使用すればよいかわかりません..

map ファイルの代わりに、または map ファイルと同様に dbml ファイルを使用する必要がありますか?

または、コードで新しいヘッダーレコード変数を作成するときに、次のようなことを言って、システムにDBの生成されたID値を使用してレコード変数を更新するように指示する方法はありますか....:recHdr.Id .AutoGeneratedVales = True; recHdr.Id.AutoSync = OnInsert;

どうもありがとう...

4

0 に答える 0