dotnetcore / FreeSql

🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
http://freesql.net
MIT License
4.08k stars 849 forks source link

代码生成器生成的字段顺序和数据库的表字段顺序不一致 #550

Closed hvppy closed 3 years ago

hvppy commented 3 years ago

代码生成器生成的字段顺序和数据库的表字段顺序不一致

2881099 commented 3 years ago

主键字段,外键字段,字段名

2881099 commented 3 years ago

主键最前面,其次是外键,最后是普通字段按名称

hvppy commented 3 years ago

测试下来,普通字段会按照名称进行排序

2881099 commented 3 years ago

是会按名称排序

order by 是否主键, 是否外键, 名称

hvppy commented 3 years ago

是否可以考虑只是主键和外键移到最前面,普通字段还是维持和数据库一致呢

2881099 commented 3 years ago

这个后面再考虑,如果现在解决可以尝试:

下载源码,拿 sqlsever 为例,Providers\FreeSql.Provider.SqlServer\SqlServerDbFirst.cs 看 503 行,注释它。

修改 Extensions\FreeSql.Generator\FreeSql.Generator.csproj 版本号,重新编译它。

进入 Extensions\FreeSql.Generator\bin\Debug 目录,进入目录 cmd 命令,执行命令:

dotnet tool update -g FreeSql.Generator --add-source ./

zilo555 commented 3 years ago

这个后面再考虑,如果现在解决可以尝试:

下载源码,拿 sqlsever 为例,Providers\FreeSql.Provider.SqlServer\SqlServerDbFirst.cs 看 503 行,注释它。

修改 Extensions\FreeSql.Generator\FreeSql.Generator.csproj 版本号,重新编译它。

进入 Extensions\FreeSql.Generator\bin\Debug 目录,进入目录 cmd 命令,执行命令:

dotnet tool update -g FreeSql.Generator --add-source ./ 完美 不习惯命名排序。。。 既然是Dbfirst还是习惯按数据库的字段顺序来。。

luoyunchong commented 3 years ago

(S_K4@V%Y}K4T IXZ47~%V7

运行FreeSql.Generator 命令工具后,可以生成模板。。 会生成一个.bat 。会有一个 -Razor 指定模板。可以修改此模板。如上文位置增加。.OrderBy(r=>r.Position).ToList()

可参考: FreeSql生成实体类.zip