从 DbSet 中删除记录会在 EF Core 中引发"Value cannot be null"错误



我有以下代码来从GroupMembershipsDbSet中删除成员身份,这非常简单:

public int RemoveStudentFromGroup(string studentId, int groupId)
{
try
{
var member = _context.GroupMemberships
.Where(pgm => pgm.UserId == studentId && pgm.StudentGroupId == groupId)
.FirstOrDefault();
_context.GroupMemberships.Remove(member);
_context.SaveChanges();
return 1;
}
catch
{
throw;
}
}

然而,由于某种原因(从EF Core 2.2升级到3.0之后(,此代码抛出以下错误:

System.ArgumentNullException:值不能为null。(参数"实体"(

在Microsoft.EntityFrameworkCore.Utilities.Check.NotNull[T](T值,String parameterName(
,位于Microsoft.EntityFrameworkCore.Internal.InteralDbSet`1.Remove(TEntity实体(
在Synergy.Controllers.StudentGroupController.RemoveStudentFromGroup(字符串studentId,Int32 groupId(,位于C:\Users\ErkanEr\source\repos\Synergy\Controllers\StudentGroupController.cs:line 810
处的lambda_method623(Closure,Object,Object[](

以下是GroupMembership实体的定义:

public class GroupMembership
{
[Key]
public int Id { get; set; }
[ForeignKey("StudentGroupId")]
public StudentGroup StudentGroup { get; set; }
public int StudentGroupId { get; set; }
[ForeignKey("UserId")]
public ApplicationUser User { get; set; }
public string UserId { get; set; }
}

你知道为什么会发生这种事吗?

在调用.Remove((之前,您必须检查member是否为null

相关内容

最新更新