Asp.net mvc SimpleMembership CreateUserAndAccount IDENTITY\u在自定义用户表上插入错误

Asp.net mvc SimpleMembership CreateUserAndAccount IDENTITY\u在自定义用户表上插入错误,asp.net-mvc,asp.net-mvc-4,simplemembership,Asp.net Mvc,Asp.net Mvc 4,Simplemembership,我正在尝试使用自己的Users表进行SimpleMership,并向其中添加一些数据。根据这里的样本- 我已使用此模型创建了一个表: [Table("MyUsers")] 公共类MyUsers [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } public string UserName { get; set; } public string

我正在尝试使用自己的Users表进行SimpleMership,并向其中添加一些数据。根据这里的样本- 我已使用此模型创建了一个表:

 [Table("MyUsers")]
公共类MyUsers

[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Gender { get; set; }
public DateTime DOB { get; set; }
我正在初始化它:

  WebSecurity.InitializeDatabaseConnection("MyConnection", "MyUsers", "UserId", "UserName", autoCreateTables: true);
登记后,我打电话:

  WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new MyUsers {DOB = DateTime.Now.AddYears(-31),Email = "my@mymail.com",Gender = "Male",UserName = model.UserName});
但是-我得到了这个错误: 当identity\U insert设置为OFF时,无法在表“MyUsers”中为identity列插入显式值

不知道如何在VS2010中设置此错误,但我不知道为什么会出现此错误,以及应该修复什么

感谢您的帮助,我正在尝试测试是否可以将传统asp.net项目迁移到MVC


Thansk

您所做的是在基本用户表的基础上构建一个扩展。因此,UserId列不应是自动递增的列。它将尝试从基本用户表中插入实际ID作为外键。

您所做的是在基本用户表的基础上构建一个扩展。因此,UserId列不应是自动递增的列。它将尝试将基本用户表中的实际ID作为外键插入。

发现了我的问题-是CreateUserAndAccount,我使用了一个与表中所有字段(包括键)匹配的类。不应该这样。 这项工作:

 WebSecurity.CreateUserAndAccount(model.UserName, model.Password,new  {Gender="Mal",DOB = DateTime.Now.AddYears(-1),Email="mymy@trtr.com" });

谢谢。

发现了我的问题-是CreateUserAndAccount,我使用了一个匹配表中所有字段的类,包括键。不应该这样。 这项工作:

 WebSecurity.CreateUserAndAccount(model.UserName, model.Password,new  {Gender="Mal",DOB = DateTime.Now.AddYears(-1),Email="mymy@trtr.com" });

谢谢。

谢谢,但是如果我要删除这个,我需要自己设置ID吗?然后相同的id将成为网页中的用户\u成员?除了查询用户表之外,还有没有一种获取新ID的好方法?@GuyV,框架试图插入的ID是唯一的用户ID。你真的没有理由要另一个ID吗?这个ID永远不会被复制,这不是一对多表,是吗?这不是一对一的桌子吗?不,您应该自己设置ID-这就是它失败的原因-框架正在尝试设置ID。对不起,我想我缺少一些基本的东西。如果我查看模板将为我自动生成的UserProfile表,我会发现它有increment。我试图用我自己的表替换此表,并在CreateUserAndAccount中添加其他参数。因此,如果我理解正确,应该插入表中的userid。我还尝试让UserProfile表得到genreted,并向该表添加列,但遇到了相同的问题。顺便说一句,从我的表中删除密钥会导致用户ID始终设置为0,因此无法在第二个用户上插入。谢谢,但是如果我要删除它,我需要自己设置ID吗?然后相同的id将成为网页中的用户\u成员?除了查询用户表之外,还有没有一种获取新ID的好方法?@GuyV,框架试图插入的ID是唯一的用户ID。你真的没有理由要另一个ID吗?这个ID永远不会被复制,这不是一对多表,是吗?这不是一对一的桌子吗?不,您应该自己设置ID-这就是它失败的原因-框架正在尝试设置ID。对不起,我想我缺少一些基本的东西。如果我查看模板将为我自动生成的UserProfile表,我会发现它有increment。我试图用我自己的表替换此表,并在CreateUserAndAccount中添加其他参数。因此,如果我理解正确,应该插入表中的userid。我还尝试让UserProfile表得到genreted,并向该表添加列,但遇到了相同的问题。顺便说一句,从“我的表”中删除键会导致userid始终设置为0,因此无法在第二个用户上插入。