当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

.net如何连接mysql?终于找到答案了Net Core 3.1版本使用MySQL数据库迁移启动模板项目

最近。因为还没有使用net core。我想用net core的环境创建新项目.因为不熟悉net core的体系结构,所以我将下载ABP项目,先了解一下。

但是自己太菜了,下载了模板项目,在启动的过程中一波三折,其曲折真是无法用言语形容。(但是我没有灰心!没有什么技术是在努力的情况下学不会的,是嘛)在搜集信息的过程中,很多网友分享的资料都很有帮助,但是有一个问题的方法对于我这边遇到的问题却用不上,因为问题没有得到解决。但是却给了我不同的思路,从而让问题得到解决,模板项目终于顺利启动。

先贴上我参考的帖子,正是因为有优秀的网友的分享,我才打开了abp模板项目的大门!(不多说了,远程握手为敬吧,哈哈)

参考资料

ABP入门教程(一)启动模板项目

ABP (.Net Core) 使用MySQL数据库

按照参考资料的操作,只需要简单几步就可以把模板项目启动起来,但是!不知道为何,任何新鲜的技术到了我这里,就要费上N个步骤,花费九牛二虎之力,绞尽脑汁都还是一堆红色报错,满屏红让我沮丧,让我怀疑人生......

emmmm直接开始从步骤说起吧。

  1. abp模板下载abp模板下载
  2. VS2019打开项目解决方案(用VS2017应该也可以,不过要额外下载.net sdk 3.0安装。)
  3. 找到【解决方案名.Web.Host】项目里面的a,修改数据库连接字符串因为我本地的sqlserver没有连接成功,缺配置工具,没有选择重装。改换mysql配置。所以我的配置是"ConnectionStrings": { "Default": "server=localhost;uid=root;pwd=123;port=3306;database=ExtraModuleDb;" }
  4. 在【解决方案名.EntityFrameworkCore】用Nuget添加安装引用(也可以参考上面的第二个链接,用命令执行)install-package
  5. 在【解决方案名.EntityFrameworkCore】里面找到DbContextConfigurer文件,修改数据库配置连接 `public static void Configure(DbContextOptionsBuilder<KYKWMSExtraModuleDbContext> builder, string connectionString) { builder.UseMySql(connectionString); } public static void Configure(DbContextOptionsBuilder<KYKWMSExtraModuleDbContext> builder, DbConnection connection) { builder.UseMySql(connection); }`
  6. 数据迁移最好先删除【解决方案名.EntityFrameworkCore】下的【Migration】文件夹然后将【解决方案名.Web.Host】设为启动项目,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore。在程序包管理器控制台输入命令: Add-Migration Init生成成功,会看到【解决方案名.EntityFrameworkCore】下的【Migration】文件夹下面多了三个文件。然后更新数据库,abp会自动建库。在程序包管理器控制台输入命令: Update-Database -Verbose到了这里呢,问题就来了,我正是被这个问题困扰了一个上午。好熟悉的错误:You have an error in your SQL syntax肉眼可见,datetime那里带了一个长度,而在mysql语句创建表的时候,datetime类型是不允许带长度的。于是我的做法就是,手动把代码里面datetime(6)全部替换成datetime,再次在程序包管理器控制台输入命令: Update-Database -Verbose但得到的结果仍然是You have an error in your SQL syntax。反复操作 Add-Migration Init Update-Database -Verbose 后,依然没办法解决这个问题,我有一点无奈,同时有一点不甘心。我可是个老鸟啊,遇到未知的问题,解决问题的方式就只能是坐着叹气了么?! (肯定不是!)午休睡了一觉,下午起来接着解决这个问题。我看了一下,为什么是添加 引用呢?这个产商不是官方Oracle的呢。以前的项目不都是添加MySql.Data吗?带着这个疑惑,于是我就尝试着换 MySql.Data 去添加引用,添加引用的时候,发现它有一个EntityFrameworkCore的版本: MySql.Da ,于是把两个都安装上。(一定是要两个都安装,只安装 MySql.Data 是不完整的,至少在数据库配置链接出错的时候,是没有提示,不知道应该改成UseMySQL才可用)

安装好后,运行发现有报错,原来数据库配置连接里面的MySql要大写的才对。(其实报错的时候会很疑惑,明明是MySql啊,为什么不支持了呢?也不知道是要改大写,把鼠标放上去选择修复的时候,就变成大写,错误就消失了。)

就这样编译成功!说明用官方的包也是可以用的!

接着重新重复第6步的命令:

删除【Migration】文件夹下面的文件,在程序包控制台执行命令:

Add-Migration Init

Update-Database -Verbose

好了!看到表成功的在创建!

但是,不能开心太早!问题又来了!

字符串的长度太长了,最后一句提示varchar max length=65535。我还不知道这些代码是怎么生成的,要怎么把最基础的代码改掉才不至于报低级的错误。所以在这里我解决的方法就是手动去把【Migration】文件夹下面的文件,超出数据类型长度的全部手动修改。第一次没有改全的,报一次错改一次,后面基本都是数据类型长度超出的问题。全部改好了,再 Update-Database,最终数据库成功创建好,项目也运行起来了。

emmmm,前端的因为还不太熟悉这种分离式的项目,vue.js还跑不起来,看不到整个项目的全貌。这里就作为第一部分结束先。

1.《.net如何连接mysql?终于找到答案了Net Core 3.1版本使用MySQL数据库迁移启动模板项目》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《.net如何连接mysql?终于找到答案了Net Core 3.1版本使用MySQL数据库迁移启动模板项目》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2099917.html

上一篇

OFFICE办公技能:WORD中表格跨页后如何自动添加标题?

下一篇

0PP0手机内存满了怎么清理?终于找到答案了是什么在占用手机内存?OPPOR9splus重启快速“回血”

关于.net如何连接mysql数据库,你需要知道这些PHP 连接 MySQL

关于.net如何连接mysql数据库,你需要知道这些PHP 连接 MySQL

.net如何连接mysql数据库相关介绍,在PHP 5和更高版本中,建议使用以下方法连接到MySQL : MySQLi extension(“I”表示improved) PHP数据对象(Pdo) PHP早期版本使用MySQL扩展。 但该扩展在...

.net如何连接mysql数据库?总结很全面速看!Python3连接MySQL8.0数据库,难不?

.net如何连接mysql数据库?总结很全面速看!Python3连接MySQL8.0数据库,难不?

.net如何连接mysql数据库相关介绍,朋友们,久等了。终于有时间谈谈Python3操作MySQL数据库了。真的是“千虎万虎开始,仍然抱着琵琶半茶面。”的总和。 1 不用我多说,应该都知道,Python连接数据库的前提是:MySQL已经安装...

.net如何连接mysql数据库?我来告诉你答案Swift3.0服务端开发(四) MySQL数据库连接与操作

.net如何连接mysql数据库?我来告诉你答案Swift3.0服务端开发(四) MySQL数据库连接与操作

.net如何连接mysql数据库相关介绍,在本博客中,我们将讨论MySQL数据库的连接和操作。如果本地没有MySQL数据库,则必须先安装MySQL数据库。 在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的。安装MySQL的...

.net如何连接mysql数据库连接池?总结很全面速看!PHP 连接 MySQL

.net如何连接mysql数据库连接池?总结很全面速看!PHP 连接 MySQL

.net如何连接mysql数据库连接池相关介绍,在PHP 5和更高版本中,建议使用以下方法连接到MySQL : MySQLi extension(“I”表示improved) PHP数据对象(Pdo) PHP早期版本使用MySQL扩展。 但该扩展在...

.net如何连接mysql?总结很全面速看!PHP 连接 MySQL

.net如何连接mysql?总结很全面速看!PHP 连接 MySQL

.net如何连接mysql相关介绍,在PHP 5和更高版本中,建议使用以下方法连接到MySQL : MySQLi extension(“I”表示improved) PHP数据对象(Pdo) PHP早期版本使用MySQL扩展。 但该扩展在...