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
83 lines
3.2 KiB
1 year ago
|
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
|
||
|
";
|
||
|
}
|
||
|
}
|