Asp.net mvc 4 System.Data.SqlClient.SqlException:列名无效';电子邮件';

Asp.net mvc 4 System.Data.SqlClient.SqlException:列名无效';电子邮件';,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我正在开发一个新的ASP.NETMVC4应用程序,并测试用户登录。我得到以下例外情况: System.Data.SqlClient.SqlException: Invalid column name 'Email' 我使用的例子来自 以下是相应的代码: [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Register(RegisterModel model) {

我正在开发一个新的ASP.NETMVC4应用程序,并测试用户登录。我得到以下例外情况:

System.Data.SqlClient.SqlException: Invalid column name 'Email'
我使用的例子来自

以下是相应的代码:

[AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    string confirmationToken =
                        WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email }, true);

                    System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress("noreply@cardmage.com");
                    System.Net.Mail.MailAddress[] to = new System.Net.Mail.MailAddress[1];
                    to[1] = new System.Net.Mail.MailAddress(model.Email);
                    System.Net.Mail.MailAddress[] cc = new System.Net.Mail.MailAddress[0];
                    System.Net.Mail.MailAddress[] bcc = new System.Net.Mail.MailAddress[0];
                    String Subject = "Please verify your e-mail address.";
                    String body = String.Format("Thank you for registering with CardMage." +
                        "To verify your account, please follow this link." +
                        "http://www.cardmage.co/Account/RegisterConfirmation/{0}", confirmationToken);
                    System.Net.NetworkCredential nc = new NetworkCredential("foo", "bar");
                    SendGrid sg = SendGrid.GetInstance(from, to, cc, bcc, Subject, body, "");
                    SMTP s = SMTP.GetInstance(nc);
                    s.Deliver(sg);
                    return RedirectToAction("RegisterStepTwo", "Account");

我做错了什么?我试图从谷歌搜索中找到解决方案,但没有成功。我发现问题的属性值的格式与我相同,所以我检查了我的数据库,但电子邮件列不存在。有人能给我指一下正确的方向吗?感谢您的时间和考虑。

要通过调用CreateUserAndAccount更新您的电子邮件字段,请执行以下操作:

1确保您使用的数据库表具有电子邮件列

2更改帐户模型UserProfile以包含您的电子邮件字段

3更改注册视图以包含您的电子邮件

4更改AccountController以包含一个anomymous对象(您已完成此操作)

然后,当您注册新用户时,他们的电子邮件将存储在数据库表中


这对我很有用。

我假设您在调用CreateUserAndAccount时遇到错误,如果您查看数据库中的表UserProfile没有电子邮件列。请提供UserProfile类、数据库初始值设定项和Global.asax应用程序启动方法的定义代码。请注意,本文假设您遵循了前一篇文章中有关自定义和设定SimpleMembership种子的步骤。列是自动生成的,如何保证在调用“CreateUserAndAccount”之前创建自定义列?