Entity Frameworkを使用していて、エンティティの静的Createメソッドを使用してデータベースに新しいレコードを作成しようとしています。
具体的には、DBにAllelesというテーブルがありますが、CreateAlleleメソッドは、このテーブルのPKであるIdの値を要求します。
私は本当にこれを提供する必要がありますか?PKを自動インクリメントするのはDB次第ではありませんか?
Entity Frameworkを使用していて、エンティティの静的Createメソッドを使用してデータベースに新しいレコードを作成しようとしています。
具体的には、DBにAllelesというテーブルがありますが、CreateAlleleメソッドは、このテーブルのPKであるIdの値を要求します。
私は本当にこれを提供する必要がありますか?PKを自動インクリメントするのはDB次第ではありませんか?
Id
が列の場合IDENTITY
、値(たとえば、-1)を指定するだけで、レコードIDがコミットされたときにEFが生成されたキーに置き換えます。
SQL Management Studioを使用して列のID値を変更するか、作成スクリプトにIDプロパティを含めることができます。エンティティ図を更新すると、うまくいくはずです。
IDENTITYは、テーブルに設定できるプロパティです。このプロパティは、テーブル全体の1つの列にのみ設定できます。SQL Serverは、プロパティの作成時に指定したシードに基づいて、この列の増分を処理します。
IDENTITY [ ( seed , increment ) ]
シード—テーブルにロードされる最初の行に使用される値です。
Increment —ロードされた前の行のID値に追加される増分値です。
デフォルト値–(1,1)
新しいテーブルの作成中にID列を作成するにはどうすればよいですか?
CREATE TABLE tblEmployees
(
ID int IDENTITY(1,1),
Name varchar (200),
SSN varchar(10)
)