2016-05-12 61 views
-1

這不是重複性 我不是設置值標識列!WPF無法插入表 - (我沒有設置價值INTO IDENTITY COULMN)

我不能在我的表中添加值。我認爲所有的設置好的,但這個錯誤正在添加保留:「不能在表中標識列插入顯式值‘MainQueue’ 當IDENTITY_INSERT設置爲OFF」

我的表:

CREATE TABLE [dbo].[MainQueue] (
    [Id]    INT  IDENTITY (1, 1) NOT NULL, 
    [Created]   DATETIME NOT NULL, 
    [IdOffice]   INT  NOT NULL, 
    [IdCategory]  INT  NOT NULL, 
    [StartProcessTime] DATETIME NULL, 
    [EndProcessTime] DATETIME NULL, 
    [IdUser]   INT  NULL, 
    [Sms]    BIT  CONSTRAINT [DF__MainQueue__Sms__412EB0B6] DEFAULT ((0)) NOT NULL, 
    [OrderNumber]  INT  NOT NULL, 
    [IdSms]   INT  NULL, 
    [UserWindowNumber] INT  NULL, 
    CONSTRAINT [PK__MainQueu__3214EC0783954F32] PRIMARY KEY CLUSTERED ([Id] ASC), 
    CONSTRAINT [FK_MainQueue_Category] FOREIGN KEY ([IdCategory]) REFERENCES [dbo].[Category] ([Id]), 
    CONSTRAINT [FK_MainQueue_Office] FOREIGN KEY ([IdOffice]) REFERENCES [dbo].[Office] ([Id]), 
    CONSTRAINT [FK_MainQueue_User] FOREIGN KEY ([IdUser]) REFERENCES [dbo].[User] ([Id]), 
    CONSTRAINT [FK_MainQueue_SmsQueue] FOREIGN KEY ([IdSms]) REFERENCES [dbo].[SmsQueue] ([Id]) 
); 

我的代碼添加:

var queueItem = new MainQueue(); 
queueItem.IdOffice = officeId; 
queueItem.IdCategory = categoryId; 
queueItem.Created = DateTime.Now; 
queueItem.OrderNumber = orderNum; 

dc.MainQueues.InsertOnSubmit(queueItem); 
dc.SubmitChanges(); 

這不是口是心非 我沒有設定值標識列!

+1

您的模型在應用程序中是否與數據庫模型正確對齊? – Galma88

+0

你可以顯示MainQueue的代碼嗎?我想也許Id屬性被賦予一個默認值。 –

回答

0

您所描述的ID列是一個自動增量標識列,這意味着您無法爲該ID傳遞任何顯式值,插入後DBS將填充該ID。在調用方法時,請刪除Insert方法中的ID列,並且不要爲該ID傳遞參數。

如果您確實需要爲該ID插入明確的值,請在調用插入之前使該列不是IDENTITY,而是使主列成爲主或關閉IDENTITY INSERT,然後再打開。