2010-08-11 90 views
0

我試圖插入一行到具有標識列和三個使用wpf中的實體框架的「普通」列的表中。 但是我得到了這個錯誤信息: 當IDENTITY_INSERT設置爲OFF時,無法在表'MyTable'中爲標識列插入顯式值 這裏是我的代碼片段,試圖添加到名稱,姓氏,年齡和用戶ID (身份)欄:插入到具有標識列的表

 var newuser = new User(); 
     newuser.SurName = surNameTextBox.Text; 
     newuser.Name = nameTextBox.Text; 
     newuser.Age = Int32.Parse(ageTextBox.Text); 
     context.AddToUsers(newuser); 
     context.SaveChanges(); 

任何人都可以幫助我解決這個問題嗎?

+0

你想設置一個用戶ID值嗎? (不是在示例代碼中,但也許在其他地方?) – Tobiasopdenbrouw 2010-08-11 12:45:32

+0

我不這麼認爲,但我會再次檢查它。在行動我想知道如何增加用戶ID ..我有自己增加它或SQL爲我做? – cemregoksu 2010-08-11 12:49:18

+0

我無法理解你的意思,現在不知道你是否明白我想做什麼=) 我只是想分配代碼段中的給定列,我希望sql自己設置用戶ID。 – cemregoksu 2010-08-11 12:56:36

回答

1

標識列確實更新自己 - 這是他們的目的。

如果這是您用來更新用戶的唯一代碼,那麼我會查看(或發佈)DataContext中的AddToUsers方法。

+0

我找不到任何我分配用戶標識的地方,但在調試時,我意識到userID似乎分配爲0,傳遞給AddObject方法的用戶對象。但我不知道爲什麼以及如何... – cemregoksu 2010-08-11 13:23:40

+0

那麼,如果用戶ID是某種類型的int,並且從來沒有分配給它,它將爲0. – 2010-08-11 13:27:47

+0

是否是SQL的問題?我應該爲此做些什麼?我該如何解決它? – cemregoksu 2010-08-11 13:29:59

2

我不熟悉實體框架,但對於好奇這是對標識列使插入的MS SQL命令:

SET IDENTITY_INSERT tablename ON 

我Wonko到理智的同意,問題是幾乎可以肯定地在AddToUsers方法中。

+0

+1信息和+1贊同我。 :) – 2010-08-12 02:46:33

相關問題