我正在研究.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。
如何解决此错误。 需要帮助,提前谢谢。
答案 0 :(得分:0)
我也面临这个问题,我要做的是
打开命令提示符并转到项目位置,然后运行以下命令
dotnet ef迁移脚本-o initial.sql
它将生成sql,打开文件并删除所有带有VARCHAR(100)的VARCHAR(767)
在sqlyog / workbench中运行sql,您将创建第一次迁移,现在就可以继续工作。
对于其余的迁移,请确保不要将主键varchar设置为更长的长度或使用int
谢谢