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