'where clause'中未知列'Extent1.Discriminator'



我正在使用Visual Studio 2013 web表单应用程序与MySql数据库来构建web表单应用程序,但我一直无法获得过去的"会员资格和角色管理"。我对成员使用了数据库优先的方法,当我尝试注册一个新用户时,我得到下面的错误消息:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
Exception Details: MySql.Data.MySqlClient.MySqlException: Unknown column   'Extent1.Discriminator' in 'where clause'
Source Error: 

Line 16:             var manager = new UserManager();
Line 17:             var user = new ApplicationUser() { UserName = UserName.Text };
Line 18:             IdentityResult result = manager.Create(user, Password.Text);
Line 19:             if (result.Succeeded)
Line 20:             {
Source File:     c:WebsiteProjectsASPNETWebProjectsRevenuePortalRevenuePortalAccountRegister.aspx.cs  

奇怪的是,我没有Extent1。

在数据库的任何位置找到Discriminator'列,无法理解这个令人沮丧的错误的原因。

Extent1是实体框架在构造底层sql语句时使用的表别名。这个错误意味着EF没有正确配置或者错误地解释了你的数据库结构。

您需要分析它生成的底层查询,并确定为什么EF使用它不应该使用的字段。可能两个表之间的关系设置不正确

如果可能的话,尝试从头开始迁移。VS 2019 - Tools - Nuget包管理器-包管理器控制台-运行命令Add-Migration DBInit -一旦完成,运行另一个命令Update-Database

以上解决方案适用于代码优先的方法。

我有同样的问题,当我改变我的系统,迁移后,它开始为我工作。希望其他人也能如此。编程快乐! !

相关内容

  • 没有找到相关文章

最新更新