2013-04-17 153 views
5

我在DB下表:EF:無法插入NULL到

enter image description here

目前已經有應用程式在Apps表在數據庫中。 我將其呈現給最終用戶,他有將項目添加到AppsToDomains

我試圖保存到該表的實體:

private static void FillDomains(string[] domainsWls, EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId ,bool isWhiteListed) 
{ 
    foreach (var domain in domainsWls) 
    { 
     AppsToDomains.Add(new AppToDomains_V1() 
           { 
            Domain = domain, 
            IsWhiteListed = isWhiteListed, 
            AppId = appGuid, 
            GroupId = groupId, 
           }); 
    } 
} 

但出現以下錯誤:

{"Cannot insert the value NULL into column 'ClientAppID', table 'MamDB.dbo.Apps'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."}

這怎麼可能?因爲我沒有添加任何行到Apps表

+0

什麼是CleintAppID – Tassadaque

回答

0

您將不得不找出什麼是空的。根據你得到的例外情況,這個問題沒有在你發佈的代碼中提供。當您保存更改時,您將保存所有更改。還有其他代碼所做的更改在您發佈的當前範圍內不可見。

搜索,它是將記錄到具有基於您的架構列ClientAppID

+0

那麼我該如何解決這個問題? –

+0

我編輯了我的帖子。見上面 – MichaelD

+1

@MichaelD我想你誤解了這個問題。 Elad正在向AppToDomains_V1表添加記錄,但例外情況是Apps表不接受某一列中的空值。問題是Apps表中新記錄的來源以及如何解決 – Vedran

0

表其他代碼,它表明你不會讓你所有的字段爲空,這就是爲什麼EF使它非空。如果您強制在EF中存儲空值,那麼在將數據保存到模式中時仍然存在問題。

0

您傳遞的參數之一可能有NULL值。

EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId 

你需要調查這些對象,看看這是關係到Apps表和調查空值。