EF:无法向列插入NULL

时间:2013-04-17 06:46:23

标签: c# entity-framework

我在DB中有以下表格:

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',表'MamDB.dbo.Apps';列不允许空值.INSERT失败。\ r \ n语句已终止。”}

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

3 个答案:

答案 0 :(得分:0)

你必须找出什么是null。根据您获得的异常,问题在您发布的代码中没有源代码。保存更改时,您将保存所有更改。也是由您发布的当前范围中不可见的其他代码所做的更改。

搜索将记录添加到具有ClientAppID

列的表的其他代码

答案 1 :(得分:0)

根据您的架构,它表明您不会在所有字段上都允许null,这就是EF使其无法为空的原因。如果强制在EF中存储空值,则在将数据保存到模式中时仍会出现问题。

答案 2 :(得分:0)

您传入的其中一个参数可能具有NULL值。

 EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId

您需要调查这些对象并查看哪些与Apps表相关并调查空值。