我注意到其他人遇到了同样的问题,例如无法将值NULL插入"UserId"列,但这应该是由不同的原因引起的.
这个问题可以像这样简化:
UsersContext _usersContext = new UsersContext();
...
var usersInRole = new UsersInRole() { RoleId = 3, UserId = 1 };
_usersContext.UsersInRoles.Add(usersInRole);
_usersContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
最后一行代码引发了异常
"更新条目时发生错误.有关详细信息,请参阅内部异常."
,而且InnerException也说了同样的话
"更新条目时发生错误.有关详细信息,请参阅内部异常."!
幸运的是,InnerException的InnerException说
"无法将值NULL插入列'RoleId',表'MFC.dbo.webpages_UsersInRoles';列不允许空值.INSERT失败.\ r \n语句已终止."
.这意味着"RoleId = 3"被修改或忽略,这怎么可能发生?
下面列出了一些其他可能有用的代码:
[Table("webpages_UsersInRoles")]
public partial class UsersInRole
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int RoleId { get; set; }
public int UserId { get; set; }
}
public class UsersContext : DbContext
{
public UsersContext()
: base("MFCConnectionString")
{
}
public DbSet<UsersInRole> UsersInRoles { get; set; }
} …Run Code Online (Sandbox Code Playgroud)