asp.net核心2显示指定的键太长;最大密钥长度为3072字节

时间:2017-12-29 04:10:25

标签: c# mysql asp.net-identity asp.net-core-2.0 asp.net-core-webapi

我正在研究.net核心2.我使用mysql作为数据库。当我编写以下代码dbContext.Database.EnsureCreated();时,它会生成错误

MySql.Data.MySqlClient.MySqlException:'指定的密钥太长;最大密钥长度为3072字节'

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ApplicationDbContext dbContext)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // ===== Create tables ======
            dbContext.Database.EnsureCreated();

            app.UseMvc();
        }

我能够成功生成漫游,角色,用户声明和用户。 我正在使用applicationDbcontext,它正在扩展IdentityDbContext。

如何解决此错误。 需要帮助,提前谢谢。

1 个答案:

答案 0 :(得分:0)

我也面临这个问题,我要做的是

  1. 打开命令提示符并转到项目位置,然后运行以下命令

    dotnet ef迁移脚本-o initial.sql

  2. 它将生成sql,打开文件并删除所有带有VARCHAR(100)的VARCHAR(767)

在sqlyog / workbench中运行sql,您将创建第一次迁移,现在就可以继续工作。

对于其余的迁移,请确保不要将主键varchar设置为更长的长度或使用int

谢谢