私のsqlserverデータベースのテーブルのプライマリ・キーとしてユニークな識別子を使用しています。私はlinqからsql(C#)を使用してモデルを生成しましたが、identity
列の場合linq to sqlは/のデフォルト値00000000-0000-0000-0000-000000000000
の新しいレコードを挿入する際に一意のキーを生成します。SqlServerのuniqueidentifier/updatedカラムをLinqからSqlへ - ベスト・アプローチ
linqからSQLモデルなどのコードでguidを設定できることがわかっています。または、SQL Serverテーブルを作成する際にデフォルト値があります(これはコードで生成された値によってオーバーライドされます) 。しかし、どこに私のテーブルが常に私のソリューションが開発するように変更されることに注意して、このキーを生成するために最適なので、私は私のLinq SQLモデルを再生成します。
現在のdatetime
(挿入物)を保持する列にも同じ解決策が適用されますが、これは各更新で更新されますか?
ステファンありがとう、私はこれがおそらく私の好みのアプローチ、UpdateTest(...)はうまく見えますが、OnCreatedを使用してInsertTestを使用する際の懸念事項は、他の関連オブジェクトと関連して発生する可能性のあるオブジェクトライフサイクルの場所です。私はGUIDをまだ生成していないデフォルトの0を使って、他のオブジェクトへのリンクを作成することができますか? – Richbits
AFAIK関連オブジェクトが親オブジェクトにエンティティセットとして添付されている場合、関連オブジェクトの外部キーが挿入後に更新されます。しかし、私は、OnCreateメソッドでguidを設定することに何も問題がないことを発見しました。私はInsert-Methodを使用します。これは、データベース内の数値プールから取得された固有の連続番号(たとえば請求書番号)を設定する必要があるためです。固有のキーの場合は、ID列を使用します。 –
ありがとう、私はこれを試してみて、それは問題なく動作するようです。元のOnCreated()メソッドを使用しましたが、このアプローチに変更されました。 – Richbits