我有一个使用MVC的Web 2项目。它使用实体框架。该实体框架对.edmx文件首先使用数据库方法。
该项目基于VS 2013 Express Web 2模板。我只是用了我自己的数据库。我没有修改任何帐户相关代码。但是,当我尝试注册一个新用户时,AccountController.cs中的以下语句会抛出异常:
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
...
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
...
}例外情况是:
Cannot insert the value NULL into column 'Discriminator', table 'xxx.dbo.AspNetUsers'; column does not allow nulls. INSERT fails.
The statement has been terminated.有谁可以帮我?谢谢!
发布于 2014-04-16 20:24:43
昨天我升级了所有的NuGet包。其中,Asp.net标识被升级到2.0.0.0。
它神奇地起了作用。
所以我怀疑那是因为身份1.0中的一些错误
发布于 2014-04-14 09:16:44
答案就在你的身体里。
table 'xxx.dbo.AspNetUsers'; column does not allow nulls.
看起来,您试图从模型实例NULL中插入一个NULL值,其中数据库服务器中的表结构不允许接受NULL值。
尝试调试和检查,当请求出现时,您的模型实例是否正在正确创建。
我也能看到,你用:
IdentityResult result = await UserManager.CreateAsync(user, model.Password);为什么用户不是模型的成员,比如密码属性?也许试着用:
IdentityResult result = await UserManager.CreateAsync(model.User, model.Password);不管怎样..。我没有更多的信息,也没有想象,模型实例中包含了什么,您是如何从请求中绑定数据的。您应该查看调试器和调试非常好,以修复您的项目或提供更多的信息。
但是有一件事是很清楚的,那就是你试图在列中插入一个NULL值,它不接受NULL,所以你必须检查你的模型是如何绑定的。也许你的客户端应用程序没有正确发送一些论点,也许你把你的模型绑定错了,也许是别的什么.需要从您那里获得更多信息以帮助您,否则您应该仔细调试。
https://stackoverflow.com/questions/23056132
复制相似问题