2013-04-17 128 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表和调查空值。