Admin.NET是基于Furion+SqlSugar框架的core webapi项目。
刚开始就报:Specified method is not supported. 需要把CreateDatabase注释
1、 SqlSugar(dbProvider.DbMaintenance.CreateDatabase())对部门国产数库不支持。需要手动创建。并且到Admin.NET.Core/SqlSugar/SqlSugarSetup.cs里。
把269行注册掉,不然会报错。
//if (config.DbType != SqlSugar.DbType.Oracle)
//dbProvider.DbMaintenance.CreateDatabase();//达梦步取消 手动建库
打开达梦数据库DM管理工具,
一、先新建表空间ADMINNET。
二、新建用户ADMINNET,设置密码,(数据库连接串要用到),所属角色(我选择DBA),系统权限(我选择ALL,可以根据情况选择)
三、新建模式 ,模式名和用户名最好一致,连接串里database不起作用,会自动找用户一样的数据库。
2、修改数据库连接串 在Admin.NET.Application/Configruation/Database.json里。
“DbType”:"Dm",
"ConnectionString": "PORT=5236;HOST=localhost;PASSWORD=123;USER ID=ADMINNET;",
这里要注意会自动找User一样的模式,查了一下达梦连接串参数:有个schema可以改模式,我没有试,你们试了之后可以评论告知一下。
schema | 指定用户登录后的当前模式,默认为用户名的默认模式 |
改好这些之后,就可以直接编译运行了。
问题一:
不出意外的话,肯定会出意外,报错:SqlSugar DmException: 嵌套层次太深。
应该是初始化数据批量执行的sql太多了。
解决办法:
找到DM安装目录 dmdbs/data/DAMENG/下的 dm.ini。使用记事本打开
查找 EXPR_N_LEVEL
我把这相邻的三个都改大了。
EXPR_N_LEVEL = 500 #Maximum nesting levels for expression 表达式的最大嵌套级别
N_PARSE_LEVEL = 500 #Maximum nesting levels for parsing object 解析对象的最大嵌套级别
MAX_SQL_LEVEL = 1000 #Maximum nesting levels of VM stack frame for sql
sql的虚拟机堆栈框架的最大嵌套级别
保存就可以了。记得重新启动 达梦数据库服务。
问题二:
在刚开始运行还是报错:ADMINNET没有用户权限。记不清了,但是后来我打断点调试,一步一步走就好了。也成功在ADMINNET模式里生成表了。很奇怪。
多说一句,成功之后,我们就可以在Admin.NET.Core/Entity下添加自己的表了。继承EntityBase里面有 主键和公共字段 。
重新运行就可以自动生成到数据库了。
Admin.NET.Core/Service下添加接口服务。 /Test/SysTestService.cs
并继承 :IDynamicApiController, ITransient 会自动生成api 这就是Furion相关的东西。
详细教程请看: 让 .NET 开发更简单,更通用,更流行。 Furion | Furion