• .Net手动实现ORM及代码生自动成器


    序言

      代码生成器 同时提供便捷的开发管理功能和多项开发工作中常用到的辅助工具功能,您可以很方便轻松地进行项目开发,让软件开发变得轻松而快乐!帮您快速开发项目,缩短开发周期,减少开发成本,大大提高了企业的研发效率,使得软件企业在同样的时间创造出更大的价值。

    代码

    protected override string GetColumnInfosByTableNameSql
            {
                get
                {
                    string sql = @"SELECT sysobjects.name AS TableName,
                               syscolumns.Id AS TableId,
                               syscolumns.name AS DbColumnName,
                               systypes.name AS DataType,
                               syscolumns.length AS [Length],
                               sys.extended_properties.[value] AS [ColumnDescription],
                               syscomments.text AS DefaultValue,
                               syscolumns.isnullable AS IsNullable,
                               columnproperty(syscolumns.id,syscolumns.name,'IsIdentity')as IsIdentity,
                               (CASE
                                    WHEN EXISTS
                                           ( 
                                                     select 1
                                                    from sysindexes i
                                                    join sysindexkeys k on i.id = k.id and i.indid = k.indid
                                                    join sysobjects o on i.id = o.id
                                                    join syscolumns c on i.id=c.id and k.colid = c.colid
                                                    where o.xtype = 'U' 
                                                    and exists(select 1 from sysobjects where xtype = 'PK' and name = i.name) 
                                                    and o.name=sysobjects.name and c.name=syscolumns.name
                                           ) THEN 1
                                    ELSE 0
                                END) AS IsPrimaryKey
                        FROM syscolumns
                        INNER JOIN systypes ON syscolumns.xtype = systypes.xtype
                        LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id
                        LEFT OUTER JOIN sys.extended_properties ON (sys.extended_properties.minor_id = syscolumns.colid
                                                                    AND sys.extended_properties.major_id = syscolumns.id)
                        LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
                        WHERE syscolumns.id IN
                            (SELECT id
                             FROM sysobjects
                             WHERE xtype IN('u',
                                            'v') )
                          AND (systypes.name <> 'sysname')
                          AND sysobjects.name='{0}'
                          AND systypes.name<>'geometry'
                          AND systypes.name<>'geography'
                        ORDER BY syscolumns.colid";
                    return sql;
                }
            }
    根据表名获得字段类型

    资料

    动软代码生成器

    SqlSugar5

    孙凯旋个人主页

    自己动手写三层代码生成器学习总结

  • 相关阅读:
    系统实践2-2:查看dockerfile-032092135mysql容器的配置信息
    系统综合实践1
    SDN——实验脚本7-2:hardtimeout.json
    SDN——实验脚本7-1:odlnorth.py
    实验 7:OpenDaylight 实验——Python 中的 REST API 调用
    预习非数值数据的编码方式
    预习原码补码
    C语言ll作业01
    C语言寒假大作战04
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/cnki/p/10749009.html
Copyright © 2020-2023  润新知