Entity Framework 6 Code First を使用して、newid() を使用して SQL データベースのテーブルの主キーの既定値を設定したいと考えています。私はこれがコードを介してどのように行われるかを知っており、エンティティフレームワークで GUID に NewId() を設定する方法など、スタックオーバーフローに関するいくつかのアプローチも見つけました
BUT:私は、オブジェクトを介してではなく、データベースへのバルジとしてデータを挿入するバックアップ/復元メカニズムを持っています。したがって、ここでは Entity Framework は使用されません。これは、GUID が null の行が SQL データベースに挿入され、失敗することを意味します。
注釈を追加することが可能です
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Nullable<Guid> Entity_OID { get; set; }
そして、これは NEWSEQUENTIALID() をデフォルト値として正常に追加します。これは newid() と同様のことを行います (最近の GUID よりも高い新しい GUID を追加するため、入力に順序があるため、パフォーマンスが向上します)。しかし、これは EF なしで既に存在するデータベースであるため、変更をできるだけ少なくしたいと考えています。したがって、私は NEWSEQUENTIALID() にはまったく満足していません。まだ newid() だったらいいのにと思います。しかし、Entity Framework 6 Code First で newid() の注釈/マッピングが見つかりませんでした。また、設計上、データベースへのすべての変更はコードで行う必要があります。デフォルト値 newid() をコードで行に追加する方法を知っている人はいますか?
前もって感謝します!