5

我在数据库中有下表:

在此处输入图像描述

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 表中添加任何行

4

3 回答 3

0

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

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

于 2013-04-17T06:51:29.863 回答
0

根据您的架构,它表明您不会在所有字段上都允许为空,这就是 EF 使其不可为空的原因。如果您强制在 EF 中存储空值,那么在将数据保存到架构时仍然会遇到问题。

于 2013-04-17T07:27:20.457 回答
0

您传入的参数之一可能具有 NULL 值。

 EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId

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

于 2013-04-17T07:41:32.423 回答