Skip to content

Commit a56a599

Browse files
committed
update ttinclude
1 parent f3168ff commit a56a599

File tree

1 file changed

+37
-154
lines changed

1 file changed

+37
-154
lines changed

EntityFramework.Reverse.POCO.Generator/EF.Reverse.POCO.v3.ttinclude

Lines changed: 37 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -14711,159 +14711,42 @@ ORDER BY SchemaName, TableName, TriggerName;";
1471114711
protected override string TableSQL()
1471214712
{
1471314713
return @"
14714-
SET NOCOUNT ON;
14715-
IF OBJECT_ID('tempdb..#Columns') IS NOT NULL DROP TABLE #Columns;
14716-
IF OBJECT_ID('tempdb..#PrimaryKeys') IS NOT NULL DROP TABLE #PrimaryKeys;
14717-
IF OBJECT_ID('tempdb..#ForeignKeys') IS NOT NULL DROP TABLE #ForeignKeys;
14718-
14719-
SELECT
14720-
c.TABLE_SCHEMA,
14721-
c.TABLE_NAME,
14722-
c.COLUMN_NAME,
14723-
c.ORDINAL_POSITION,
14724-
c.COLUMN_DEFAULT,
14725-
sc.IS_NULLABLE,
14726-
c.DATA_TYPE,
14727-
c.CHARACTER_MAXIMUM_LENGTH,
14728-
c.NUMERIC_PRECISION,
14729-
c.NUMERIC_SCALE,
14730-
c.DATETIME_PRECISION,
14731-
14732-
ss.schema_id,
14733-
st.object_id AS table_object_id,
14734-
sv.object_id AS view_object_id,
14735-
14736-
sc.is_identity,
14737-
sc.is_rowguidcol,
14738-
sc.is_computed, -- Computed columns are read-only, do not confuse it with a column with a DEFAULT expression (which can be re-assigned). See the IsStoreGenerated attribute.
14739-
CONVERT( tinyint, [sc].[generated_always_type] ) AS generated_always_type -- SQL Server 2016 (13.x) or later. 0 = Not generated, 1 = AS_ROW_START, 2 = AS_ROW_END
14740-
14741-
INTO
14742-
#Columns
14743-
FROM
14744-
INFORMATION_SCHEMA.COLUMNS c
14745-
14746-
INNER JOIN sys.schemas AS ss ON c.TABLE_SCHEMA = ss.[name]
14747-
LEFT OUTER JOIN sys.tables AS st ON st.schema_id = ss.schema_id AND st.[name] = c.TABLE_NAME
14748-
LEFT OUTER JOIN sys.views AS sv ON sv.schema_id = ss.schema_id AND sv.[name] = c.TABLE_NAME
14749-
INNER JOIN sys.all_columns AS sc ON sc.object_id = COALESCE( st.object_id, sv.object_id ) AND c.COLUMN_NAME = sc.[name]
14750-
14751-
WHERE
14752-
c.TABLE_NAME NOT IN ('EdmMetadata', '__MigrationHistory', '__EFMigrationsHistory', '__RefactorLog', 'sysdiagrams')
14753-
14754-
14755-
CREATE NONCLUSTERED INDEX IX_EfPoco_Columns
14756-
ON dbo.#Columns (TABLE_NAME)
14757-
INCLUDE (
14758-
TABLE_SCHEMA,COLUMN_NAME,ORDINAL_POSITION,COLUMN_DEFAULT,IS_NULLABLE,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE,DATETIME_PRECISION,
14759-
schema_id, table_object_id, view_object_id,
14760-
is_identity,is_rowguidcol,is_computed,generated_always_type
14761-
);
14762-
14763-
-----------
14764-
14765-
SELECT
14766-
u.TABLE_SCHEMA,
14767-
u.TABLE_NAME,
14768-
u.COLUMN_NAME,
14769-
u.ORDINAL_POSITION
14770-
INTO
14771-
#PrimaryKeys
14772-
FROM
14773-
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
14774-
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON
14775-
u.TABLE_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS = tc.CONSTRAINT_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS
14776-
AND
14777-
u.TABLE_NAME = tc.TABLE_NAME
14778-
AND
14779-
u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
14780-
WHERE
14781-
CONSTRAINT_TYPE = 'PRIMARY KEY';
14782-
14783-
SELECT DISTINCT
14784-
u.TABLE_SCHEMA,
14785-
u.TABLE_NAME,
14786-
u.COLUMN_NAME
14787-
INTO
14788-
#ForeignKeys
14789-
FROM
14790-
INFORMATION_SCHEMA.KEY_COLUMN_USAGE u
14791-
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc ON
14792-
u.TABLE_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS = tc.CONSTRAINT_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS
14793-
AND
14794-
u.TABLE_NAME = tc.TABLE_NAME
14795-
AND
14796-
u.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
14797-
WHERE
14798-
CONSTRAINT_TYPE = 'FOREIGN KEY';
14799-
14800-
--------------------------
14801-
14802-
SELECT
14803-
c.TABLE_SCHEMA AS SchemaName,
14804-
c.TABLE_NAME AS TableName,
14805-
t.TABLE_TYPE AS TableType,
14806-
CONVERT( tinyint, ISNULL( tt.temporal_type, 0 ) ) AS TableTemporalType,
14807-
14808-
c.ORDINAL_POSITION AS Ordinal,
14809-
c.COLUMN_NAME AS ColumnName,
14810-
c.IS_NULLABLE AS IsNullable,
14811-
DATA_TYPE AS TypeName,
14812-
ISNULL(CHARACTER_MAXIMUM_LENGTH, 0) AS [MaxLength],
14813-
CAST(ISNULL(NUMERIC_PRECISION, 0) AS INT) AS [Precision],
14814-
ISNULL(COLUMN_DEFAULT, '') AS [Default],
14815-
CAST(ISNULL(DATETIME_PRECISION, 0) AS INT) AS DateTimePrecision,
14816-
ISNULL(NUMERIC_SCALE, 0) AS Scale,
14817-
14818-
c.is_identity AS IsIdentity,
14819-
c.is_rowguidcol AS IsRowGuid,
14820-
c.is_computed AS IsComputed,
14821-
c.generated_always_type AS GeneratedAlwaysType,
14822-
14823-
CONVERT( bit,
14824-
CASE WHEN
14825-
c.is_identity = 1 OR
14826-
c.is_rowguidcol = 1 OR
14827-
c.is_computed = 1 OR
14828-
c.generated_always_type <> 0 OR
14829-
c.DATA_TYPE IN ( 'rowversion', 'timestamp' ) OR
14830-
( c.DATA_TYPE = 'uniqueidentifier' AND c.COLUMN_DEFAULT LIKE '%newsequentialid%' )
14831-
THEN 1
14832-
ELSE
14833-
0
14834-
END
14835-
) AS IsStoreGenerated,
14836-
14837-
CONVERT( bit, ISNULL( pk.ORDINAL_POSITION, 0 ) ) AS PrimaryKey,
14838-
ISNULL(pk.ORDINAL_POSITION, 0) PrimaryKeyOrdinal,
14839-
CONVERT( bit, CASE WHEN fk.COLUMN_NAME IS NOT NULL THEN 1 ELSE 0 END ) AS IsForeignKey
14840-
14841-
FROM
14842-
#Columns c
14843-
14844-
LEFT OUTER JOIN #PrimaryKeys pk ON
14845-
c.TABLE_SCHEMA = pk.TABLE_SCHEMA AND
14846-
c.TABLE_NAME = pk.TABLE_NAME AND
14847-
c.COLUMN_NAME = pk.COLUMN_NAME
14848-
14849-
LEFT OUTER JOIN #ForeignKeys fk ON
14850-
c.TABLE_SCHEMA = fk.TABLE_SCHEMA AND
14851-
c.TABLE_NAME = fk.TABLE_NAME AND
14852-
c.COLUMN_NAME = fk.COLUMN_NAME
14853-
14854-
INNER JOIN INFORMATION_SCHEMA.TABLES t ON
14855-
c.TABLE_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS = t.TABLE_SCHEMA COLLATE SQL_Latin1_General_CP1_CI_AS AND
14856-
c.TABLE_NAME COLLATE SQL_Latin1_General_CP1_CI_AS = t.TABLE_NAME COLLATE SQL_Latin1_General_CP1_CI_AS
14857-
14858-
LEFT OUTER JOIN
14859-
(
14860-
SELECT
14861-
st.object_id,
14862-
[st].[temporal_type] AS temporal_type
14863-
FROM
14864-
sys.tables AS st
14865-
) AS tt ON c.table_object_id = tt.object_id
14866-
";
14714+
SELECT 'main' AS SchemaName,
14715+
tbl_name AS TableName,
14716+
TableType,
14717+
0 AS TableTemporalType,
14718+
cid AS Ordinal,
14719+
ColumnName,
14720+
IsNullable,
14721+
REPLACE(type, '(' || length || ')', '') AS TypeName,
14722+
type as XXXXX,
14723+
CASE WHEN INSTR(type, ',') > 0 THEN 0 ELSE length END AS [MaxLength],
14724+
CASE WHEN INSTR(type, ',') > 0 THEN SUBSTR(type, INSTR(type, ',') - 1) ELSE 0 END AS Precision,
14725+
dflt_value AS [Default],
14726+
0 AS DateTimePrecision,
14727+
CASE WHEN INSTR(type, ',') > 0 THEN SUBSTR(type, 1, INSTR(type, ',') - 1) ELSE 0 END AS Scale,
14728+
pk AS IsIdentity,
14729+
0 AS IsRowGuid,
14730+
0 AS IsComputed,
14731+
0 AS GeneratedAlwaysType,
14732+
0 AS IsStoreGenerated,
14733+
pk AS PrimaryKey,
14734+
pk AS PrimaryKeyOrdinal,
14735+
0 AS IsForeignKey
14736+
FROM (SELECT m.tbl_name,
14737+
CASE WHEN m.type = 'table' THEN 'BASE TABLE' ELSE 'VIEW' END AS TableType,
14738+
c.cid,
14739+
c.name AS ColumnName,
14740+
LOWER(c.type) AS type,
14741+
1 - c.""notnull"" AS IsNullable,
14742+
c.dflt_value,
14743+
c.pk,
14744+
SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ')') - INSTR(c.type, '(') - 1) AS length
14745+
FROM sqlite_master m
14746+
JOIN PRAGMA_TABLE_INFO(m.name) c
14747+
WHERE m.type IN ('table', 'view')
14748+
AND m.name NOT LIKE 'sqlite_%')
14749+
ORDER BY tbl_name, cid;";
1486714750
}
1486814751

1486914752
protected override string ForeignKeySQL()
@@ -15095,7 +14978,7 @@ ORDER BY SchemaName, TableName, TriggerName;";
1509514978

1509614979
protected override string ReadDatabaseEditionSQL()
1509714980
{
15098-
return string.Empty;
14981+
return "SELECT 'SQLite' AS Edition, '' AS EngineEdition, '' AS ProductVersion;";
1509914982
}
1510014983

1510114984
public override void ReadStoredProcReturnObjects(List<StoredProcedure> procs)

0 commit comments

Comments
 (0)