2012-04-08 88 views
1

我是很新的EF 4.1。我在EF 4.1的Code First開發中遇到了這個錯誤。EF 4.1代碼第一次錯誤 - IDENTITY_INSERT設置爲OFF

「當IDENTITY_INSERT設置爲OFF無法插入表‘表’標識列明確的價值。」

我搜索在互聯網和理解ABT的

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

但是沒有用的使用。我也將選項從Identity更改爲None。但沒用。

+1

是在SQL Server端自動增量標識列? – 2012-04-08 07:09:19

+0

是的。那是問題嗎 ? – 2012-04-08 07:26:52

+0

不,你是對的。如果你的Id列是Autoincrement int step 1,你可以。但正如下面所說的那樣,您不應該爲該列附加明確的值。 – 2012-04-08 07:35:14

回答

1

您試圖插入新行插入表有自動增量PK,你不應該在這裏,當你嘗試,並將其添加到數據庫設置ID屬性。

+0

嗨,你是說我不應該像下面所示那樣指定 – 2012-04-08 07:28:13

+0

[必需的,重要的,數據庫生成的(DatabaseGeneratedOption.Identity)] public int StudentID {get;組; } – 2012-04-08 07:28:32

+0

那我該如何映射映射類中的字段? – 2012-04-08 07:39:24

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