EF:无法将NULL插入到列中

5

我在数据库中有以下表:

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,
                              });
    }
}

但是出现以下错误:

{"将值NULL插入列'ClientAppID'失败,因为该列不允许为空。插入失败。\r\n语句已终止。"}

这怎么可能?因为我没有向Apps表中添加任何行。

3个回答

0

你传递的参数之一可能具有NULL值。

 EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId

你需要调查这些对象,看哪个与Apps表有关,并调查空值。

0

你需要找出什么是null。根据你得到的异常,问题并不源于你发布的代码。当你保存更改时,你正在保存所有更改,包括其他代码所做的更改,这些更改在你发布的当前范围内不可见。

搜索其他添加记录到具有ClientAppID列的表的代码。


我编辑了我的帖子。请看上面。 - MichaelD
1
@MichaelD 我认为你误解了问题。Elad正在向AppToDomains_V1表中添加记录,但异常情况是Apps表在某个列中不接受空值。问题是新的Apps表记录来自哪里,以及如何修复它。 - Vedran

0

根据您的架构,显示您不允许字段为空,因此EF将其设置为不可空。如果您强制在EF中存储null值,当您将数据保存到架构中时仍会遇到问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接