我在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,
});
}
}
但收到以下错误:
{“无法将值NULL插入列'ClientAppID',表'MamDB.dbo.Apps';列不允许空值.INSERT失败。\ r \ n语句已终止。”}
怎么可能?因为我没有在Apps表中添加任何行
答案 0 :(得分:0)
你必须找出什么是null。根据您获得的异常,问题在您发布的代码中没有源代码。保存更改时,您将保存所有更改。也是由您发布的当前范围中不可见的其他代码所做的更改。
搜索将记录添加到具有ClientAppID
列的表的其他代码答案 1 :(得分:0)
根据您的架构,它表明您不会在所有字段上都允许null,这就是EF使其无法为空的原因。如果强制在EF中存储空值,则在将数据保存到模式中时仍会出现问题。
答案 2 :(得分:0)
您传入的其中一个参数可能具有NULL值。
EntityCollection<AppToDomains_V1> AppsToDomains,
Guid appGuid, Guid groupId
您需要调查这些对象并查看哪些与Apps
表相关并调查空值。