FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 5973|回复: 5
打印 上一主题 下一主题

AppBox开源版如何使用MySQL作为数据库?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-8 16:32:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AppBox开源版默认使用MS Sqlserver 作为后台数据库。
web.config也有一个连接字条串写上MySQL,但是无法直接使用该连接串。
请问一下要怎么修改呢?
是否需要其它dll支持?
appbox是否兼容不同类型的数据库?
沙发
发表于 2014-11-9 17:04:39 | 只看该作者
这个需要查下EntityFramework的官方文档,MySQL需要下载单独的DLL支持
板凳
发表于 2015-1-15 03:28:31 | 只看该作者
使用NuGet管理器下载并安装MySql.Data和MySql.Data.Entity 2个程序集

nuget会自动帮你配置好Web.Config里面的相关内容

这时候直接运行项目仍然会报错,因为SqlServer的字段配置不适用于MySql

找到Context类,在

public class AppBoxContext : DbContext

上方加入[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]

再次运行项目,OK,运行正常
地板
 楼主| 发表于 2015-1-15 09:24:11 | 只看该作者
TsungKang 发表于 2015-1-15 03:28
使用NuGet管理器下载并安装MySql.Data和MySql.Data.Entity 2个程序集

nuget会自动帮你配置好Web.Config里 ...

你说的这个我试过了,编译是没问题了,只是打开Appbox相关页面时,个别页面还是会报错,怕怕
5#
发表于 2015-2-6 09:41:42 | 只看该作者
Mr.Wu 发表于 2015-1-15 09:24
你说的这个我试过了,编译是没问题了,只是打开Appbox相关页面时,个别页面还是会报错,怕怕 ...

我仔细研究了一下,如果需要完全移植的确是需要修改很多地方,例如user.aspx中的删除用户

原代码为
DB.Users.Where(u => u.ID == userID).Delete();
,如果执行就会造成错误。

如果尝试将这句代码修改为
DB.Users.Remove(DB.Users.Single(u => u.ID == userID)); DB.SaveChanges();


再次执行删除用户就不会出现错误。

2句代码产生了不同的SQL语句,但是我不是很清楚前者生成的INNER JOIN为什么会导致MySQL报错。
6#
发表于 2015-2-6 10:43:15 | 只看该作者
TsungKang 发表于 2015-2-6 09:41
我仔细研究了一下,如果需要完全移植的确是需要修改很多地方,例如user.aspx中的删除用户

原代码为,如 ...

可能还是 Mysql 的那个 Provider 自身的 BUG,这么看来 EntityFramework 对 Mysql 的支持还是不行.....
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-9 04:15 , Processed in 0.047860 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表