2012-11-08 49 views
0

如何在EF中添加一個新的實體?Id列在數據庫中定義爲identity添加帶有標識列的EF的新項目

我收到以下錯誤:

Cannot insert explicit value for identity column in table 'AppsData' when IDENTITY_INSERT is set to OFF.

但我不能設置Id爲null,因爲它是數據庫中的int(甚至不能爲空)

我的功能是:

public Conduit.Mam.MaMDBEntityFramework.AppsData Add(Conduit.Mam.MaMDBEntityFramework.AppsData item) 
    { 
     maMdbEntities.AddToAppsDatas(item); 

     maMdbEntities.SaveChanges(); 

     return item; 
    } 
+2

您是否讓該列標識增量? –

回答

2

我不得不做出這個屬性identity中以及

+0

我有同樣的問題 - 這對我來說是固定的。謝謝! – JYX

2

如果您將Id設置爲除零以外的任何整數值,則會刪除該初始化或將其設置爲零。

由於例外情況明顯表明您的ID列(即標識列)具有值。

Cannot insert explicit value for identity column in table 'AppsData' when IDENTITY_INSERT is set to OFF.

異常

String or binary data would be truncated. The statement has been terminated

當你發送數據長度大於db表列數據類型lenght更大隻配備。

+0

它解決了我的問題,但提出了一個新的問題:字符串或二進制數據將被截斷。 該聲明已被終止。「# –

+0

@EladBenda,您正在發送一個字符串或二進制值,其長度大於您的db表列值,請檢查該值。 –

2

字符串或二進制數據將被截斷的EDMX。該語句已終止。

這意味着:您想要在列中插入的數據多於列大小。在db中增加列大小。

相關問題