当我将一个相当简单的实体插入表中时,我得到以下ArgumentNullException
。
我认为这不重要,但数据库是SQL Server Compact .sdf文件。
值不能为空。 参数名称:source
在System.Linq.Enumerable.Any [TSource](IEnumerable
1 source, Func
2谓词)
at System.Data.Entity.Internal.InternalContext.WrapUpdateException(UpdateException updateException)
在System.Data.Entity.Internal.InternalContext.SaveChanges()
在System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
在System.Data.Entity.DbContext.SaveChanges()
{{下面的代码}}
以下是我正在使用的代码:
var newMaterial = _localJobs.DbMaterials.Create();
newMaterial.JobID = a_job.ID;
newMaterial.MaterialName = material.Name;
newMaterial.UseType = material.UseType;
newMaterial.Length = material.Length;
newMaterial.Width = material.Width;
newMaterial.Thickness = material.Thickness;
newMaterial.DefaultLength = material.DefaultLength;
newMaterial.DefaultWidth = material.DefaultWidth;
newMaterial.DefaultThickness = material.DefaultThickness;
_localJobs.DbMaterials.Add(newMaterial);
_localJobs.SaveChanges(); // <- The exception occurs here.
我使用有效数据正确填充每个字段。这里唯一的关键是JobID
。它是一个外键GUID,与名为Job
的表有明确的关系。数据库中已存在正确的记录。
这是我的表架构。
答案 0 :(得分:0)
当您有一个字段:
时会发生此错误错误的原因可能是:
尝试使用SQL事件探查器,然后您将看到哪个插入语句导致错误。
答案 1 :(得分:0)
鉴于您将检查已提供的所有合理建议。然后另一种可能性是你模型和DB不匹配。
你有
吗?移民优秀。
..仔细检查。我之前看过这个消息; - )
答案 2 :(得分:0)
这是一个非常老的线程,但我仍然会发布答案,因为我有类似的问题,我找不到答案。也许它会帮助别人。
对我的回答非常愚蠢。我的ID列不是该表的主键。