SqlServer生成实体类,包含Display和StringLength


本来想生成具有model格式的类,但是无法解决回车换行的问题,所以放到3个字段里的;如果有知道的博友,请指教:

t_jsd是表名
select
'[Display(Name="'+ cast(tab.字段说明 as varchar) +'")]',
case when (tab.类型='varchar' or tab.类型='nvarchar' or tab.类型='char') then '[StringLength('+cast( tab.占用字节数 as varchar) +', ErrorMessage = "{0}长度不能超过{1}")]' else '' end,
'public '+(case when tab.类型='varchar' then 'string' when tab.类型='nvarchar' then 'string' when tab.类型='char' then 'string' when tab.类型='datetime' then 'DateTime' else tab.类型 end )+' '+tab.字段名+' {get;set;}'
from
(
select
表名 = case when a.colorder=1 then d.name else '' end,
表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号 = a.colorder,
字段名 = a.name,
标识 = case when columnproperty( a.id,a.name,'isidentity')=1 then ''else '' end,
主键 = case when exists(select 1 from sysobjects where xtype='pk' and parent_obj=a.id and name in (
select name from sysindexes where indid in( select indid from sysindexkeys where id = a.id and colid=a.colid))) then '' else '' end,
类型 = b.name,
占用字节数 = a.length,
长度 = columnproperty(a.id,a.name,'precision'),
小数位数 = isnull(columnproperty(a.id,a.name,'scale'),0),
允许空 = case when a.isnullable=1 then ''else '' end,
默认值 = isnull(e.text,''),
字段说明 = isnull(g.[value],'')
from
syscolumns a
left join
systypes b
on
a.xusertype=b.xusertype
inner join
sysobjects d
on
a.id=d.id and d.xtype='u' and d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
sys.extended_properties g
on
a.id=g.major_id and a.colid=g.minor_id
left join
sys.extended_properties f
on
d.id=f.major_id and f.minor_id=0
where
d.name='t_jsd' 

) tab

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM