You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

83 lines
3.2 KiB

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<DataCenterContext> // DropCreateDatabaseAlways<AppBoxContext> DropCreateDatabaseIfModelChanges<AppBoxContext>
{
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
";
}
}