2012-04-08 13 views
1

EF 4.1の新機能です。私はEF 4.1のコード・ファースト開発でエラーが発生しています。EF 4.1コードの最初のエラー - IDENTITY_INSERTがOFFに設定されています

"IDENTITY_INSERTがOFFに設定されていると、テーブル 'テーブル'のID列に明示的な値を挿入できません。

私は、インターネットで検索し、

[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]. 

しかし、役に立たないの使用体長約理解していました。私はアイデンティティからなしにオプションを変更しました。しかし、使用しないでください。

+1

は、SQL Server側の自動インクリメントのID列です? –

+0

はい。問題ありますか ? –

+0

あなたは正しいですか。あなたのID列がオートインクリメントintステップ1であればOKです。しかし、以下のように、その列に明示的な値を追加するべきではありません。 –

答えて

1

自動インクリメントPKを使用して新しい行をテーブルに挿入しようとしていますが、IDプロパティをここで設定してDBに追加する必要はありません。

+0

こんにちは、私は以下のように指定してはいけないと言っています。 –

+0

[必須、Key、DatabaseGeneratedOption.Identity] public int StudentID {get;セット; } –

+0

次に、マッピングクラスのフィールドをどのようにマップできますか? –

0

私は外部キー関係に私のクラスで間違った方法を定義していたので、私はこれと同じエラーが発生しました:

public partial class Student 
{ 
    [Key] 
    public int StudentId { get; set; } 

    public string StudentName { get; set; } 
    public int StudentAge { get; set; } 
    public int GradeNumber { get; set; } 
    public string LockerNumber { get; set; } 
    public string TeacherID { get; set; } 
    public string StudentComments { get; set; } 

    // Navigation properties 
    [ForeignKey("TeacherID")] 
    public virtual Teacher Teacher { get; set; } 

    public virtual GradeLevel GradeLevel { get; set; } 

    // the code below is incorrect, the StudentClass should have the StudentId 
    // as the FK entity: 

    [ForeignKey("StudentId")] 
    public virtual StudentClass StudentClass { get; set; } 
} 

StudentClassクラス

public partial class StudentClass 
{ 
    [Key] 
    public int RowId { get; set; } 
    public int StudentId { get; set; } 
    public int ClassSubjectId { get; set; } 

    // Navigation properties 
    [ForeignKey("ClassSubjectId")] 
    public virtual ClassSubject ClassSubject { get; set; } 

    // this is the way the relationship should be defined: 

    [ForeignKey("StudentId")] 
    public virtual Student Student { get; set; } 
} 
関連する問題