2011-04-21 44 views
0

我一直在做一個asp mvc項目幾個星期。我已經通過linq使用沒有問題的實體從數據庫中插入和刪除東西。無法在標識列中插入顯式值INSERT_OFF

我用默認佈局創建了我的項目。因此,在用戶註冊我要註冊的信息在我的數據庫

Client: 
IdClient 
Name 
LastName 

我要求通過表單此信息,併爲此後的AccountController:

Client client = new Client(); 
client.Name = model.Name; 
client.LastName = model.LastName 
storeDB.Clients.Add(client); 
storeDB.SaveChanges(); 

Note that I'm not attempting to insert anything on the IdClient 

The class looks like: 
public class Client{ 

    [Key] 
    public int IdClient {get; set;} 
    public string Name {get; set;} 
    public string LastName {get; set;} 
} 

我在其他已經插入表沒有問題,但是這一個拋出我: 當IDENTITY_INSERT設置爲OFF時,無法在表'Client'中爲標識列插入顯式值。

異常詳細信息:System.Data.SqlClient.SqlException:當IDENTITY_INSERT設置爲OFF時,無法在表'Client'中爲標識列插入顯式值。

我檢查了桌子上的所有東西看起來很正常,身份證明只有IdClient!有人知道我爲什麼得到這個嗎? = SI不認爲這與我在AccountsController中執行此插入操作有關,它沒有任何意義...

更新:我插入到另一個表中並且它不標誌我的錯誤,我不明白...我創造了他們一樣!我用JUST創建了一個名爲CLIENT的表,它不起作用!有沒有人知道我在哪裏可以找到問題? = S

-I 不要想要插入一個值到標識列,我試圖在顯示錶數據上添加一個新行,我手動向名稱和姓氏引入值,單擊ENTER和行被創建,但是當我通過查詢來完成時,它不會讓我。

謝謝!

回答

0

檢查映射類的主鍵。它應該有這樣的屬性:

[Column(Storage="_LetterOID", AutoSync=AutoSync.OnInsert, 
    DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] 

重要的是IsDbGenerated = true。如果你的屬性缺乏,我們發現錯誤!如果您使用的是設計器,只需重新生成此類(通過刪除設計器中的表格並從服務器資源管理器中刪除它)。

這解決了我以前的問題。

+0

我不想插入到鍵值中,並且我沒有插入到鍵值中...是這樣的答案嗎?讓我檢查一下。我使用腳本創建它,而不是使用類。使用EF圖! – bb2 2011-04-21 01:35:10

0

正如Andrei所說,請檢查您的設計師。 編寫兩張表並確認工作的表確實具有標識列。 嘗試運行兩個插入的分析器,它們插入的所有列是否相同?

需要更多信息來回答這個問題。

+0

讓我把它手動插入到show table數據中,這是否意味着什麼? = S – bb2 2011-04-21 01:43:20

相關問題