subsonic 3.0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/LICENSE.txt +41 -0
- data/lib/SubSonic.Core.dll +0 -0
- data/lib/T4 Templates/ActiveRecord/ActiveRecord.tt +620 -0
- data/lib/T4 Templates/ActiveRecord/Context.tt +295 -0
- data/lib/T4 Templates/ActiveRecord/SQLServer.ttinclude +347 -0
- data/lib/T4 Templates/ActiveRecord/Settings.ttinclude +552 -0
- data/lib/T4 Templates/ActiveRecord/StoredProcedures.tt +30 -0
- data/lib/T4 Templates/ActiveRecord/Structs.tt +67 -0
- data/lib/T4 Templates/LinqTemplates/Classes.tt +117 -0
- data/lib/T4 Templates/LinqTemplates/Context.tt +276 -0
- data/lib/T4 Templates/LinqTemplates/SQLServer.ttinclude +349 -0
- data/lib/T4 Templates/LinqTemplates/Settings.ttinclude +551 -0
- data/lib/T4 Templates/LinqTemplates/StoredProcedures.tt +30 -0
- data/lib/T4 Templates/LinqTemplates/Structs.tt +67 -0
- data/lib/T4 Templates/README.txt +7 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/ActiveRecord.tt +560 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/ActiveRecord.vb +6447 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Context.tt +258 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Context.vb +349 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/SQLServer.ttinclude +332 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Settings.ttinclude +550 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/StoredProcedures.tt +30 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/StoredProcedures.vb +55 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Structs.tt +57 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Structs.vb +1478 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/ActiveRecord/Tests/FetchTests.vb +52 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/App.config +9 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Application.Designer.vb +13 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Application.myapp +10 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/AssemblyInfo.vb +35 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Resources.Designer.vb +63 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Resources.resx +117 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Settings.Designer.vb +73 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/My Project/Settings.settings +7 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/SubSonic.TemplatesVB.vbproj +171 -0
- data/lib/T4 Templates/SubSonic.TemplatesVB/SubSonic.TemplatesVB.vbproj.user +5 -0
- data/lib/T4 Templates/TemplateProviders/MySQL.ttinclude +278 -0
- data/lib/T4 Templates/TemplateProviders/MySQL.ttinclude.orig +303 -0
- data/lib/T4 Templates/TemplateProviders/MySQLTest.tt +27 -0
- data/lib/T4 Templates/TemplateProviders/SQLite.ttinclude +194 -0
- data/lib/T4 Templates/TemplateProviders/SQLite.ttinclude.orig +236 -0
- data/lib/T4 Templates/TemplateProviders/SQLiteTest.tt +27 -0
- data/lib/T4 Templates/TemplateProviders/Settings.ttinclude +551 -0
- metadata +112 -0
@@ -0,0 +1,278 @@
|
|
1
|
+
<#@ include file="Settings.ttinclude" #>
|
2
|
+
<#@ assembly name="MySql.Data" #>
|
3
|
+
<#@ import namespace="MySql.Data.MySqlClient" #>
|
4
|
+
<#+
|
5
|
+
MySqlConnection conn;
|
6
|
+
|
7
|
+
|
8
|
+
List<FKTable> LoadFKTables(string tableName){
|
9
|
+
string fkSQL=@"SELECT*
|
10
|
+
FROM information_schema.KEY_COLUMN_USAGE
|
11
|
+
WHERE
|
12
|
+
(REFERENCED_TABLE_SCHEMA = (@schema)
|
13
|
+
AND REFERENCED_TABLE_NAME =@table
|
14
|
+
AND TABLE_NAME is not null
|
15
|
+
)
|
16
|
+
OR
|
17
|
+
(TABLE_SCHEMA = (@schema)
|
18
|
+
AND TABLE_NAME =@table
|
19
|
+
AND REFERENCED_TABLE_NAME is not null
|
20
|
+
)
|
21
|
+
ORDER BY TABLE_NAME, COLUMN_NAME;";
|
22
|
+
|
23
|
+
var result=new List<FKTable>();
|
24
|
+
|
25
|
+
using(conn=new MySqlConnection(ConnectionString)){
|
26
|
+
|
27
|
+
var cmd=new MySqlCommand(fkSQL,conn);
|
28
|
+
cmd.Parameters.AddWithValue("@table",tableName);
|
29
|
+
cmd.Parameters.AddWithValue("@schema",DatabaseName);
|
30
|
+
conn.Open();
|
31
|
+
var rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
|
32
|
+
|
33
|
+
while(rdr.Read()){
|
34
|
+
FKTable fk=new FKTable();
|
35
|
+
string thisTable=rdr["TABLE_NAME"].ToString();
|
36
|
+
|
37
|
+
if(tableName.ToLower()==thisTable.ToLower()){
|
38
|
+
fk.ThisTable=rdr["TABLE_NAME"].ToString();
|
39
|
+
fk.ThisColumn=rdr["COLUMN_NAME"].ToString();
|
40
|
+
fk.OtherTable=rdr["REFERENCED_TABLE_NAME"].ToString();
|
41
|
+
fk.OtherColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
|
42
|
+
|
43
|
+
}else{
|
44
|
+
fk.ThisTable=rdr["REFERENCED_TABLE_NAME"].ToString();
|
45
|
+
fk.ThisColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
|
46
|
+
fk.OtherTable=rdr["TABLE_NAME"].ToString();
|
47
|
+
fk.OtherColumn=rdr["COLUMN_NAME"].ToString();
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
fk.OtherClass=Inflector.MakeSingular(CleanUp(fk.OtherTable));
|
52
|
+
fk.OtherQueryable=Inflector.MakePlural(fk.OtherClass);
|
53
|
+
|
54
|
+
result.Add(fk);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
}
|
59
|
+
|
60
|
+
return result;
|
61
|
+
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
List<Table> LoadTables(){
|
67
|
+
|
68
|
+
var result=new List<Table>();
|
69
|
+
|
70
|
+
using(conn=new MySqlConnection(ConnectionString)){
|
71
|
+
conn.Open();
|
72
|
+
|
73
|
+
//this will return everything for the DB
|
74
|
+
var schema = conn.GetSchema("COLUMNS");
|
75
|
+
conn.Close();
|
76
|
+
|
77
|
+
//spin through once to get all the tables
|
78
|
+
foreach (DataRow row in schema.Rows)
|
79
|
+
{
|
80
|
+
if(!result.Any(x=>x.Name.Equals(row["TABLE_NAME"].ToString(),StringComparison.InvariantCultureIgnoreCase)))
|
81
|
+
{
|
82
|
+
|
83
|
+
//add it
|
84
|
+
Table tbl = new Table();
|
85
|
+
tbl.PrimaryKey="";
|
86
|
+
tbl.Name = row["TABLE_NAME"].ToString();
|
87
|
+
tbl.FKTables=LoadFKTables(tbl.Name);
|
88
|
+
tbl.CleanName=CleanUp(tbl.Name);
|
89
|
+
tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);
|
90
|
+
tbl.QueryableName=Inflector.MakePlural(tbl.ClassName);
|
91
|
+
result.Add(tbl);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
//loop again - but this time pull by table name
|
96
|
+
foreach (var item in result) {
|
97
|
+
item.Columns=new List<Column>();
|
98
|
+
//pull the columns from the schema
|
99
|
+
var columns = schema.Select("TABLE_NAME='" + item.Name + "'");
|
100
|
+
|
101
|
+
foreach (var row in columns) {
|
102
|
+
Column col=new Column();
|
103
|
+
col.Name=row["COLUMN_NAME"].ToString();
|
104
|
+
col.CleanName=CleanUp(col.Name);
|
105
|
+
col.DataType=row["DATA_TYPE"].ToString();
|
106
|
+
|
107
|
+
/* Pass the information whether Data Type Unsigned or Not **/
|
108
|
+
if (row["COLUMN_TYPE"].ToString().Contains("unsigned"))
|
109
|
+
{
|
110
|
+
col.DbType=GetDbType(col.DataType+" unsigned");
|
111
|
+
col.SysType=GetSysType(col.DataType+" unsigned");
|
112
|
+
}
|
113
|
+
else{
|
114
|
+
col.DbType=GetDbType(col.DataType);
|
115
|
+
col.SysType=GetSysType(col.DataType);
|
116
|
+
}
|
117
|
+
|
118
|
+
if (TreatTinyint1AsBool && row["COLUMN_TYPE"].ToString() == "tinyint(1)") {
|
119
|
+
col.SysType = "bool";
|
120
|
+
col.DbType = DbType.Boolean;
|
121
|
+
}
|
122
|
+
|
123
|
+
col.AutoIncrement=row["EXTRA"].ToString()=="auto_increment";
|
124
|
+
col.IsNullable=row["IS_NULLABLE"].ToString()=="YES";
|
125
|
+
col.IsPK=row["COLUMN_KEY"].ToString()=="PRI";
|
126
|
+
|
127
|
+
if(col.IsPK){
|
128
|
+
item.PrimaryKey=col.Name ?? "";
|
129
|
+
}
|
130
|
+
|
131
|
+
int.TryParse(row["CHARACTER_MAXIMUM_LENGTH"].ToString(),out col.MaxLength);
|
132
|
+
|
133
|
+
item.Columns.Add(col);
|
134
|
+
|
135
|
+
}
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
return result;
|
140
|
+
}
|
141
|
+
|
142
|
+
string GetSysType(string sqlType){
|
143
|
+
string sysType="string";
|
144
|
+
switch (sqlType) {
|
145
|
+
case "bigint unsigned":
|
146
|
+
sysType= "ulong";
|
147
|
+
break;
|
148
|
+
case "bigint":
|
149
|
+
sysType= "long";
|
150
|
+
break;
|
151
|
+
case "mediumint unsigned":
|
152
|
+
case "int unsigned":
|
153
|
+
sysType= "uint";
|
154
|
+
break;
|
155
|
+
case "mediumint":
|
156
|
+
case "int":
|
157
|
+
sysType= "int";
|
158
|
+
break;
|
159
|
+
case "smallint unsigned":
|
160
|
+
sysType= "ushort";
|
161
|
+
break;
|
162
|
+
case "smallint":
|
163
|
+
sysType= "short";
|
164
|
+
break;
|
165
|
+
case "guid":
|
166
|
+
sysType= "Guid";
|
167
|
+
break;
|
168
|
+
case "smalldatetime":
|
169
|
+
case "date":
|
170
|
+
case "datetime":
|
171
|
+
case "timestamp":
|
172
|
+
sysType= "DateTime";
|
173
|
+
break;
|
174
|
+
case "float":
|
175
|
+
sysType="double";
|
176
|
+
break;
|
177
|
+
case "real":
|
178
|
+
case "numeric":
|
179
|
+
case "smallmoney":
|
180
|
+
case "decimal unsigned":
|
181
|
+
case "decimal":
|
182
|
+
case "money":
|
183
|
+
sysType= "decimal";
|
184
|
+
break;
|
185
|
+
case "tinyint unsigned":
|
186
|
+
sysType= "byte";
|
187
|
+
break;
|
188
|
+
case "tinyint":
|
189
|
+
sysType= "sbyte";
|
190
|
+
break;
|
191
|
+
case "bit":
|
192
|
+
sysType= "bool";
|
193
|
+
break;
|
194
|
+
case "longblob":
|
195
|
+
case "image":
|
196
|
+
case "binary":
|
197
|
+
case "varbinary":
|
198
|
+
sysType= "byte[]";
|
199
|
+
break;
|
200
|
+
}
|
201
|
+
return sysType;
|
202
|
+
}
|
203
|
+
DbType GetDbType(string sqlType){
|
204
|
+
switch(sqlType)
|
205
|
+
{
|
206
|
+
case "varchar":
|
207
|
+
return DbType.AnsiString;
|
208
|
+
case "nvarchar":
|
209
|
+
return DbType.String;
|
210
|
+
case "mediumint unsigned":
|
211
|
+
case "int unsigned":
|
212
|
+
case "integer unsigned":
|
213
|
+
return DbType.UInt32;
|
214
|
+
case "mediumint":
|
215
|
+
case "int":
|
216
|
+
case "integer":
|
217
|
+
return DbType.Int32;
|
218
|
+
case "guid":
|
219
|
+
return DbType.Guid;
|
220
|
+
case "date":
|
221
|
+
case "timestamp":
|
222
|
+
case "datetime":
|
223
|
+
return DbType.DateTime;
|
224
|
+
case "bigint unsigned":
|
225
|
+
return DbType.UInt64;
|
226
|
+
case "bigint":
|
227
|
+
return DbType.Int64;
|
228
|
+
case "binary":
|
229
|
+
return DbType.Binary;
|
230
|
+
case "bit":
|
231
|
+
return DbType.Boolean;
|
232
|
+
case "char":
|
233
|
+
return DbType.AnsiStringFixedLength;
|
234
|
+
case "decimal":
|
235
|
+
return DbType.Decimal;
|
236
|
+
case "float":
|
237
|
+
case "double":
|
238
|
+
return DbType.Double;
|
239
|
+
case "image":
|
240
|
+
return DbType.Binary;
|
241
|
+
case "money":
|
242
|
+
return DbType.Currency;
|
243
|
+
case "nchar":
|
244
|
+
return DbType.String;
|
245
|
+
case "longtext":
|
246
|
+
return DbType.String;
|
247
|
+
case "longblob":
|
248
|
+
return DbType.Object;
|
249
|
+
case "numeric":
|
250
|
+
return DbType.Decimal;
|
251
|
+
case "real":
|
252
|
+
return DbType.Single;
|
253
|
+
case "smalldatetime":
|
254
|
+
return DbType.DateTime;
|
255
|
+
case "smallint unsigned":
|
256
|
+
return DbType.UInt16;
|
257
|
+
case "smallint":
|
258
|
+
return DbType.Int16;
|
259
|
+
case "smallmoney":
|
260
|
+
return DbType.Currency;
|
261
|
+
case "sql_variant":
|
262
|
+
return DbType.String;
|
263
|
+
case "sysname":
|
264
|
+
return DbType.String;
|
265
|
+
case "text":
|
266
|
+
return DbType.AnsiString;
|
267
|
+
case "tinyint unsigned":
|
268
|
+
return DbType.Byte;
|
269
|
+
case "tinyint":
|
270
|
+
return DbType.SByte;
|
271
|
+
case "varbinary":
|
272
|
+
return DbType.Binary;
|
273
|
+
default:
|
274
|
+
return DbType.AnsiString;
|
275
|
+
}
|
276
|
+
|
277
|
+
}
|
278
|
+
#>
|
@@ -0,0 +1,303 @@
|
|
1
|
+
<#@ include file="Settings.ttinclude" #>
|
2
|
+
<#@ assembly name="MySql.Data" #>
|
3
|
+
<#@ import namespace="MySql.Data.MySqlClient" #>
|
4
|
+
<#+
|
5
|
+
MySqlConnection conn;
|
6
|
+
|
7
|
+
|
8
|
+
List<FKTable> LoadFKTables(string tableName){
|
9
|
+
string fkSQL=@"SELECT*
|
10
|
+
FROM information_schema.KEY_COLUMN_USAGE
|
11
|
+
WHERE
|
12
|
+
(REFERENCED_TABLE_SCHEMA = (@schema)
|
13
|
+
AND REFERENCED_TABLE_NAME =@table
|
14
|
+
AND TABLE_NAME is not null
|
15
|
+
)
|
16
|
+
OR
|
17
|
+
(TABLE_SCHEMA = (@schema)
|
18
|
+
AND TABLE_NAME =@table
|
19
|
+
AND REFERENCED_TABLE_NAME is not null
|
20
|
+
)
|
21
|
+
ORDER BY TABLE_NAME, COLUMN_NAME;";
|
22
|
+
|
23
|
+
var result=new List<FKTable>();
|
24
|
+
|
25
|
+
using(conn=new MySqlConnection(ConnectionString)){
|
26
|
+
|
27
|
+
var cmd=new MySqlCommand(fkSQL,conn);
|
28
|
+
cmd.Parameters.AddWithValue("@table",tableName);
|
29
|
+
cmd.Parameters.AddWithValue("@schema",DatabaseName);
|
30
|
+
conn.Open();
|
31
|
+
var rdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
|
32
|
+
|
33
|
+
while(rdr.Read()){
|
34
|
+
FKTable fk=new FKTable();
|
35
|
+
string thisTable=rdr["TABLE_NAME"].ToString();
|
36
|
+
|
37
|
+
if(tableName.ToLower()==thisTable.ToLower()){
|
38
|
+
fk.ThisTable=rdr["TABLE_NAME"].ToString();
|
39
|
+
fk.ThisColumn=rdr["COLUMN_NAME"].ToString();
|
40
|
+
fk.OtherTable=rdr["REFERENCED_TABLE_NAME"].ToString();
|
41
|
+
fk.OtherColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
|
42
|
+
|
43
|
+
}else{
|
44
|
+
fk.ThisTable=rdr["REFERENCED_TABLE_NAME"].ToString();
|
45
|
+
fk.ThisColumn=rdr["REFERENCED_COLUMN_NAME"].ToString();
|
46
|
+
fk.OtherTable=rdr["TABLE_NAME"].ToString();
|
47
|
+
fk.OtherColumn=rdr["COLUMN_NAME"].ToString();
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
fk.OtherClass=Inflector.MakeSingular(CleanUp(fk.OtherTable));
|
52
|
+
fk.OtherQueryable=Inflector.MakePlural(fk.OtherClass);
|
53
|
+
|
54
|
+
result.Add(fk);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
}
|
59
|
+
|
60
|
+
return result;
|
61
|
+
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
List<Table> LoadTables(){
|
67
|
+
|
68
|
+
var result=new List<Table>();
|
69
|
+
|
70
|
+
using(conn=new MySqlConnection(ConnectionString)){
|
71
|
+
conn.Open();
|
72
|
+
|
73
|
+
//this will return everything for the DB
|
74
|
+
var schema = conn.GetSchema("COLUMNS");
|
75
|
+
conn.Close();
|
76
|
+
|
77
|
+
//spin through once to get all the tables
|
78
|
+
foreach (DataRow row in schema.Rows)
|
79
|
+
{
|
80
|
+
if(!result.Any(x=>x.Name.Equals(row["TABLE_NAME"].ToString(),StringComparison.InvariantCultureIgnoreCase)))
|
81
|
+
{
|
82
|
+
|
83
|
+
//add it
|
84
|
+
Table tbl = new Table();
|
85
|
+
tbl.PrimaryKey="";
|
86
|
+
tbl.Name = row["TABLE_NAME"].ToString();
|
87
|
+
tbl.FKTables=LoadFKTables(tbl.Name);
|
88
|
+
tbl.CleanName=CleanUp(tbl.Name);
|
89
|
+
tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);
|
90
|
+
tbl.QueryableName=Inflector.MakePlural(tbl.ClassName);
|
91
|
+
result.Add(tbl);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
//loop again - but this time pull by table name
|
96
|
+
foreach (var item in result) {
|
97
|
+
item.Columns=new List<Column>();
|
98
|
+
//pull the columns from the schema
|
99
|
+
var columns = schema.Select("TABLE_NAME='" + item.Name + "'");
|
100
|
+
|
101
|
+
foreach (var row in columns) {
|
102
|
+
Column col=new Column();
|
103
|
+
col.Name=row["COLUMN_NAME"].ToString();
|
104
|
+
col.CleanName=CleanUp(col.Name);
|
105
|
+
col.DataType=row["DATA_TYPE"].ToString();
|
106
|
+
col.IsUnsigned = row["COLUMN_TYPE"].ToString().Contains(" unsigned");
|
107
|
+
|
108
|
+
<<<<<<< HEAD
|
109
|
+
col.SysType=GetSysType(col.DataType, col.IsUnsigned);
|
110
|
+
col.DbType=GetDbType(col.DataType, col.IsUnsigned);
|
111
|
+
|
112
|
+
=======
|
113
|
+
/* Pass the information whether Data Type Unsigned or Not **/
|
114
|
+
if (row["COLUMN_TYPE"].ToString().Contains("unsigned"))
|
115
|
+
{
|
116
|
+
col.DbType=GetDbType(col.DataType+" unsigned");
|
117
|
+
col.SysType=GetSysType(col.DataType+" unsigned");
|
118
|
+
}
|
119
|
+
else{
|
120
|
+
col.DbType=GetDbType(col.DataType);
|
121
|
+
col.SysType=GetSysType(col.DataType);
|
122
|
+
}
|
123
|
+
|
124
|
+
if (TreatTinyint1AsBool && row["COLUMN_TYPE"].ToString() == "tinyint(1)") {
|
125
|
+
col.SysType = "bool";
|
126
|
+
col.DbType = DbType.Boolean;
|
127
|
+
}
|
128
|
+
|
129
|
+
>>>>>>> b1f15d7a43e63916c03a365b4d260d43390f2689
|
130
|
+
col.AutoIncrement=row["EXTRA"].ToString()=="auto_increment";
|
131
|
+
col.IsNullable=row["IS_NULLABLE"].ToString()=="YES";
|
132
|
+
col.IsPK=row["COLUMN_KEY"].ToString()=="PRI";
|
133
|
+
|
134
|
+
if(col.IsPK){
|
135
|
+
item.PrimaryKey=col.Name ?? "";
|
136
|
+
}
|
137
|
+
|
138
|
+
int.TryParse(row["CHARACTER_MAXIMUM_LENGTH"].ToString(),out col.MaxLength);
|
139
|
+
|
140
|
+
item.Columns.Add(col);
|
141
|
+
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
return result;
|
147
|
+
}
|
148
|
+
|
149
|
+
string GetSysType(string sqlType, bool isUnsigned){
|
150
|
+
string sysType="string";
|
151
|
+
switch (sqlType) {
|
152
|
+
case "bigint unsigned":
|
153
|
+
sysType= "ulong";
|
154
|
+
break;
|
155
|
+
case "bigint":
|
156
|
+
if( isUnsigned )
|
157
|
+
sysType= "ulong";
|
158
|
+
else
|
159
|
+
sysType= "long";
|
160
|
+
break;
|
161
|
+
case "mediumint unsigned":
|
162
|
+
case "int unsigned":
|
163
|
+
sysType= "uint";
|
164
|
+
break;
|
165
|
+
case "mediumint":
|
166
|
+
case "int":
|
167
|
+
if( isUnsigned )
|
168
|
+
sysType= "uint";
|
169
|
+
else
|
170
|
+
sysType= "int";
|
171
|
+
break;
|
172
|
+
case "smallint unsigned":
|
173
|
+
sysType= "ushort";
|
174
|
+
break;
|
175
|
+
case "smallint":
|
176
|
+
if( isUnsigned )
|
177
|
+
sysType= "ushort";
|
178
|
+
else
|
179
|
+
sysType= "short";
|
180
|
+
break;
|
181
|
+
case "guid":
|
182
|
+
sysType= "Guid";
|
183
|
+
break;
|
184
|
+
case "smalldatetime":
|
185
|
+
case "date":
|
186
|
+
case "datetime":
|
187
|
+
case "timestamp":
|
188
|
+
sysType= "DateTime";
|
189
|
+
break;
|
190
|
+
case "float":
|
191
|
+
sysType="double";
|
192
|
+
break;
|
193
|
+
case "real":
|
194
|
+
case "numeric":
|
195
|
+
case "smallmoney":
|
196
|
+
case "decimal unsigned":
|
197
|
+
case "decimal":
|
198
|
+
case "money":
|
199
|
+
sysType= "decimal";
|
200
|
+
break;
|
201
|
+
case "tinyint unsigned":
|
202
|
+
sysType= "byte";
|
203
|
+
break;
|
204
|
+
case "tinyint":
|
205
|
+
sysType= "sbyte";
|
206
|
+
break;
|
207
|
+
case "bit":
|
208
|
+
sysType= "bool";
|
209
|
+
break;
|
210
|
+
case "longblob":
|
211
|
+
case "image":
|
212
|
+
case "binary":
|
213
|
+
case "varbinary":
|
214
|
+
sysType= "byte[]";
|
215
|
+
break;
|
216
|
+
}
|
217
|
+
return sysType;
|
218
|
+
}
|
219
|
+
DbType GetDbType(string sqlType, bool isUnsigned){
|
220
|
+
switch(sqlType)
|
221
|
+
{
|
222
|
+
case "varchar":
|
223
|
+
return DbType.AnsiString;
|
224
|
+
case "nvarchar":
|
225
|
+
return DbType.String;
|
226
|
+
case "mediumint unsigned":
|
227
|
+
case "int unsigned":
|
228
|
+
case "integer unsigned":
|
229
|
+
return DbType.UInt32;
|
230
|
+
case "mediumint":
|
231
|
+
case "int":
|
232
|
+
case "integer":
|
233
|
+
if( isUnsigned )
|
234
|
+
return DbType.UInt32;
|
235
|
+
else
|
236
|
+
return DbType.Int32;
|
237
|
+
case "guid":
|
238
|
+
return DbType.Guid;
|
239
|
+
case "date":
|
240
|
+
case "timestamp":
|
241
|
+
case "datetime":
|
242
|
+
return DbType.DateTime;
|
243
|
+
case "bigint unsigned":
|
244
|
+
return DbType.UInt64;
|
245
|
+
case "bigint":
|
246
|
+
if( isUnsigned )
|
247
|
+
return DbType.UInt64;
|
248
|
+
else
|
249
|
+
return DbType.Int64;
|
250
|
+
case "binary":
|
251
|
+
return DbType.Binary;
|
252
|
+
case "bit":
|
253
|
+
return DbType.Boolean;
|
254
|
+
case "char":
|
255
|
+
return DbType.AnsiStringFixedLength;
|
256
|
+
case "decimal":
|
257
|
+
return DbType.Decimal;
|
258
|
+
case "float":
|
259
|
+
case "double":
|
260
|
+
return DbType.Double;
|
261
|
+
case "image":
|
262
|
+
return DbType.Binary;
|
263
|
+
case "money":
|
264
|
+
return DbType.Currency;
|
265
|
+
case "nchar":
|
266
|
+
return DbType.String;
|
267
|
+
case "longtext":
|
268
|
+
return DbType.String;
|
269
|
+
case "longblob":
|
270
|
+
return DbType.Object;
|
271
|
+
case "numeric":
|
272
|
+
return DbType.Decimal;
|
273
|
+
case "real":
|
274
|
+
return DbType.Single;
|
275
|
+
case "smalldatetime":
|
276
|
+
return DbType.DateTime;
|
277
|
+
case "smallint unsigned":
|
278
|
+
return DbType.UInt16;
|
279
|
+
case "smallint":
|
280
|
+
if( isUnsigned )
|
281
|
+
return DbType.UInt16;
|
282
|
+
else
|
283
|
+
return DbType.Int16;
|
284
|
+
case "smallmoney":
|
285
|
+
return DbType.Currency;
|
286
|
+
case "sql_variant":
|
287
|
+
return DbType.String;
|
288
|
+
case "sysname":
|
289
|
+
return DbType.String;
|
290
|
+
case "text":
|
291
|
+
return DbType.AnsiString;
|
292
|
+
case "tinyint unsigned":
|
293
|
+
return DbType.Byte;
|
294
|
+
case "tinyint":
|
295
|
+
return DbType.SByte;
|
296
|
+
case "varbinary":
|
297
|
+
return DbType.Binary;
|
298
|
+
default:
|
299
|
+
return DbType.AnsiString;
|
300
|
+
}
|
301
|
+
|
302
|
+
}
|
303
|
+
#>
|