C# EF:无法在列中插入NULL

C# EF:无法在列中插入NULL,c#,entity-framework,C#,Entity Framework,我在DB中有下表: 数据库中的apps表中已存在应用。 我将它们呈现给最终用户,他必须将项目添加到AppsToDomains表中 我正在尝试将实体保存到该表中: private static void FillDomains(string[] domainsWls, EntityCollection<AppToDomains_V1> AppsToDomains, Guid appGuid, Guid groupId ,bool isWhiteListed) { f

我在DB中有下表:

数据库中的
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,
                              });
    }
}
private static void FillDomains(字符串[]domainsWls,EntityCollection AppsToDomains,
Guid appGuid、Guid groupId、bool已列入白名单)
{
foreach(域SWLS中的var域)
{
添加(新的AppToDomains_V1()
{
域=域,
IsWhiteList=IsWhiteList,
AppId=appGuid,
GroupId=GroupId,
});
}
}
但会出现以下错误:

{“无法将值NULL插入到表'MamDB.dbo.Apps'的'ClientAppID'列中;列不允许为NULL。insert失败。\r\n语句已终止。”


怎么可能呢?由于我没有在Apps表中添加任何行,因此您必须找出空值。根据您得到的异常,问题的根源不在您发布的代码中。保存更改时,即保存所有更改。此外,其他代码所做的更改在您发布的当前范围内不可见


根据您的模式,搜索将记录添加到具有ClientAppID列的表中的其他代码,这表明您不允许所有字段都为null,这就是为什么EF使其不可为null。如果强制在EF中存储空值,则在将数据保存到架构中时仍会出现问题。

您要传递的参数之一可能具有空值

 EntityCollection<AppToDomains_V1> AppsToDomains, 
    Guid appGuid, Guid groupId
EntityCollection应用程序域,
Guid appGuid,Guid groupId

您需要调查这些对象,查看哪些对象与
应用程序表相关,并调查空值。

我编辑了我的帖子。看见above@MichaelD我想你误解了这个问题。Elad正在向AppToDomains_V1表添加一条记录,但例外情况是Apps表不接受特定列中的空值。问题是Apps表中的新记录来自何处,以及如何修复它