2012-04-08 4 views
1

Ich bin sehr neu in EF 4.1. Ich erhalte den Fehler in meiner Code First-Entwicklung in EF 4.1.EF 4.1 Code Erster Fehler - IDENTITY_INSERT ist auf OFF gesetzt

"Kann keinen expliziten Wert für Identitätsspalte in Tabelle 'Tabelle' einfügen, wenn IDENTITY_INSERT auf OFF gesetzt ist."

ich in Internet gesucht und verstanden abt die Nutzung des

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

aber nichts. Ich habe auch die Option von Identität auf Keine geändert. Aber keine Verwendung.

+1

die Identitätsspalt auf der Seite autoincrement SQL Servers ? –

+0

ja. Ist das ein Problem ? –

+0

Nein, Sie haben Recht. Wenn Ihre Id-Spalte in Schritt 1 Autoinkrement ist, sind Sie in Ordnung. Aber wie im Folgenden erwähnt, sollten Sie keinen expliziten Wert für diese Spalte anhängen. –

Antwort

1

Sie versuchen, eine neue Zeile in eine Tabelle mit einem Autoinkrement-PK einzufügen. Sie sollten die ID-Eigenschaft hier nicht festlegen, wenn Sie versuchen, sie zur Datenbank hinzuzufügen.

+0

hi, also sagst du, dass ich nicht wie folgt spezifizieren sollte –

+0

[Erforderlich, Schlüssel, DatabaseGenerated (DatabaseGeneratedOption.Identity)] public int StudentID {bekommen; einstellen; } –

+0

Wie kann ich dann die Felder in der Mapping-Klasse zuordnen? –

0

Ich hatte den gleichen Fehler, weil ich eine Fremdschlüsselbeziehung in die falsche Art und Weise in meinen Klassen definiert hatte:

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; } 
} 

Die StudentClass Klasse

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; } 
} 
Verwandte Themen