using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Migrations; using ChangkeTec.SDMS.Model.DataCenterTables; namespace ChangkeTec.SDMS.Model { public class DataCenterDatabaseInitializer : DropCreateDatabaseIfModelChanges // DropCreateDatabaseAlways DropCreateDatabaseIfModelChanges { protected override void Seed(DataCenterContext db) { base.InitializeDatabase(db); // db.TA_CONFIG.AddOrUpdate(InitConfigList); // db.TA_MENU.AddOrUpdate(InitMenuList); // db.TA_DEPT.AddOrUpdate(InitDeptList); // db.TA_USER.AddOrUpdate(InitUserList); // db.TA_USER_BUTTON.AddOrUpdate(InitUserButtonList); // db.TA_USER_MENU.AddOrUpdate(InitUserMenuList); // db.TA_USER_TABLE.AddOrUpdate(InitUserTableList); // db.TA_TABLE.AddOrUpdate(InitTableList); db.Database.ExecuteSqlCommand(ProcedureInitializer.P_GetAllTables); db.SaveChanges(); base.Seed(db); } } public static class ProcedureInitializer { public static string P_GetAllTables = @" create procedure [dbo].[P_GetAllTables] as begin SELECT --表名 = Case When A.colorder = 1 Then D.name Else '' End, --表说明 = Case When A.colorder = 1 Then isnull(F.value,'') Else '' End, 表名 = D.name, 表说明 = isnull(F.value, ''), 字段序号 = A.colorder, 字段名 = A.name, 字段说明 = isnull(G.[value], ''), 自增长 = 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, 长度 = 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, ''), 占用字节数 = A.Length 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 = 'OrderInfo'--如果只查询指定表,加上此条件 Order By D.Name,A.id,A.colorder end "; } }