您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SqlServer数据库所有表生成C# Model实体类SQL语句

bubuko 2022/1/25 19:34:30 dotnet 字数 21284 阅读 999 来源 http://www.bubuko.com/infolist-5-1.html

select ROW_NUMBER() over (order by name) as id,name into #t from sysobjects where xtype='U'; declare @i int,@c int set @i=0 select @c=count(1) from #t ...
select ROW_NUMBER() over (order by name)  as id,name into #t from sysobjects where xtype=U;
declare @i int,@c int set @i=0
select @c=count(1) from #t

declare @Result varchar(max),@TableName varchar(50)
set @Result=‘‘
print @Result
while @i<@c
begin

set @i=@i+1
select @TableName=name from #t where id=@i
set @Result=@Result+ 
/// <summary>
///   +  @TableName +    
    
/// </summary>
[Table("+@TableName+")]
public class  + @TableName + 
{

select @Result = @Result + 
    /// <summary>
    ///  +  CONVERT(NVARCHAR(500), ISNULL(ColName, )) +    
    
    /// </summary>+case when ColumnName=id then 
    [Key] else ‘‘ end+
    public  + ColumnType + NullableSign +   + ColumnName +  { get; set; }

from
(
    SELECT
        replace(col.name,  , _) ColumnName,
        column_id ColumnId,
        prop.value ColName,
        case typ.name
            when bigint then long
            when binary then byte[]
            when bit then bool
            when char then string
            when date then DateTime
            when datetime then DateTime
            when datetime2 then DateTime
            when datetimeoffset then DateTimeOffset
            when decimal then decimal
            when float then float
            when image then byte[]
            when int then int
            when money then decimal
            when nchar then char
            when ntext then string
            when numeric then decimal
            when nvarchar then string
            when real then double
            when smalldatetime then DateTime
            when smallint then short
            when smallmoney then decimal
            when text then string
            when time then TimeSpan
            when timestamp then DateTime
            when tinyint then byte
            when uniqueidentifier then Guid
            when varbinary then byte[]
            when varchar then string
            else UNKNOWN_ + typ.name
        end ColumnType,
        case
            when col.is_nullable = 1 and typ.name in (bigint, bit, date, datetime, datetime2, datetimeoffset, decimal, float, int, money, numeric, real, smalldatetime, smallint, smallmoney, time, tinyint, uniqueidentifier)
            then ?
            else ‘‘
        end NullableSign
    from sys.columns col
        join sys.types typ on
            col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
            LEFT JOIN sys.extended_properties prop ON col.object_id = prop.major_id AND col.column_id = prop.minor_id
    where object_id = object_id(@TableName)
) t

set @Result = @Result  + 
}

end 
drop table #t
print @Result

根据

 

进行修改

SqlServer数据库所有表生成C# Model实体类SQL语句

原文:https://www.cnblogs.com/wang0020/p/13292229.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶