我完全失去了为什么这个错误突然开始了。
我有实体A,它与实体B有一对多的关系。它工作得非常好,但突然间它停止了工作。我甚至无法在Enitity A中添加/更新项目,也无法在实体B中添加/更新。只有Get工作正常。如果我在那里添加或更新任何内容,我会收到以下错误。
几乎尝试了堆栈溢出的所有建议,但没有任何效果。
操作失败:无法更改关系,因为一个或多个外键属性不可为空。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。
public class ReportCategory : BaseEntity
{
public string Name { get; set; }
public List<ReportType> ReportTypes { get; set; }
}
public class ReportType : BaseEntity
{
public string Name { get; set; }
public int ReportCategoryId { get; set; }
public string ReportUrl { get; set; }
public ReportCategory ReportCategory { get; set; }
public List<ReportAccess> reportAccesses { get; set; }
}
实体添加操作
public void Add(T entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
entities.Add(entity);
context.SaveChanges();
}
更新操作
public void Update(T entity)
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
if (entity.Id == 0)
{
throw new Exception("Entity unidentified");
}
if (entities.Local.Any(d => d.Id == entity.Id))
{
context.Entry(entities.Local.First(d => d.Id == entity.Id)).State = EntityState.Detached;
}
entities.Attach(entity);
context.Entry(entity).State = EntityState.Modified;
//entities.Attach(entity);
context.SaveChanges();
}
如果有人可以帮助我,我真的很感激。