- 补充 达梦 DbFirst 类型处理;

This commit is contained in:
28810 2019-12-22 03:20:54 +08:00
parent 35829f9010
commit 738eeb81a8
2 changed files with 53 additions and 6 deletions

View File

@ -83,9 +83,9 @@ public class g
.Build()); .Build());
public static IFreeSql dameng => damemgLazy.Value; public static IFreeSql dameng => damemgLazy.Value;
//启动南大通用数据库 oninit -vy
static Lazy<IFreeSql> gbaseLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder() static Lazy<IFreeSql> gbaseLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789") .UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={GBase ODBC DRIVER (64-bit)};Server=192.168.164.10:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789")
//.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789")) //.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789"))
.UseAutoSyncStructure(true) .UseAutoSyncStructure(true)
.UseLazyLoading(true) .UseLazyLoading(true)
@ -98,6 +98,7 @@ public class g
.Build()); .Build());
public static IFreeSql gbase => gbaseLazy.Value; public static IFreeSql gbase => gbaseLazy.Value;
//启动神州通用数据库 /etc/init.d/oscardb_OSRDBd start //启动神州通用数据库 /etc/init.d/oscardb_OSRDBd start
//SYSDBA 密码 szoscar55 //SYSDBA 密码 szoscar55

View File

@ -52,17 +52,49 @@ namespace FreeSql.Odbc.Dameng
case "blob": return OdbcType.VarBinary; case "blob": return OdbcType.VarBinary;
case "nvarchar2(255)": return OdbcType.NVarChar; case "nvarchar2(255)": return OdbcType.NVarChar;
case "char(36 char)": return OdbcType.Char; case "char(36)": return OdbcType.Char;
} }
switch (column.DbTypeText.ToLower()) switch (column.DbTypeText.ToLower())
{ {
case "bit":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(1)"]);
return OdbcType.Bit;
case "smallint":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(5)"]);
return OdbcType.SmallInt;
case "byte":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(3)"]);
return OdbcType.TinyInt;
case "tinyint":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(3)"]);
return OdbcType.TinyInt;
case "integer":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(11)"]);
return OdbcType.Int;
case "bigint":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(21)"]);
return OdbcType.Int;
case "dec":
case "decimal":
case "numeric":
case "number": case "number":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(10,2)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(10,2)"]);
return OdbcType.Decimal; return OdbcType.Decimal;
case "float": case "time":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(126)"]);
return OdbcType.Double;
case "interval day to second": case "interval day to second":
case "interval year to month":
case "interval year":
case "interval month":
case "interval day":
case "interval day to hour":
case "interval day to minute":
case "interval hour":
case "interval hour to minute":
case "interval hour to second":
case "interval minute":
case "interval minute to second":
case "interval second":
case "time with time zone":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["interval day(2) to second(6)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["interval day(2) to second(6)"]);
return OdbcType.Time; return OdbcType.Time;
case "date": case "date":
@ -72,17 +104,27 @@ namespace FreeSql.Odbc.Dameng
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["timestamp(6)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["timestamp(6)"]);
return OdbcType.DateTime; return OdbcType.DateTime;
case "timestamp with local time zone": case "timestamp with local time zone":
case "timestamp with time zone":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["timestamp(6) with local time zone"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["timestamp(6) with local time zone"]);
return OdbcType.DateTime; return OdbcType.DateTime;
case "binary":
case "varbinary":
case "blob": case "blob":
case "image":
case "longvarbinary":
case "bfile":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]);
return OdbcType.VarBinary; return OdbcType.VarBinary;
case "nvarchar2": case "nvarchar2":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return OdbcType.NVarChar; return OdbcType.NVarChar;
case "varchar":
case "varchar2": case "varchar2":
case "text":
case "longvarchar":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return OdbcType.NVarChar; return OdbcType.NVarChar;
case "character":
case "char": case "char":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return OdbcType.Char; return OdbcType.Char;
@ -101,9 +143,13 @@ namespace FreeSql.Odbc.Dameng
case "long raw": case "long raw":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["blob"]);
return OdbcType.VarBinary; return OdbcType.VarBinary;
case "real":
case "binary_float": case "binary_float":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(63)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(63)"]);
return OdbcType.Real; return OdbcType.Real;
case "double":
case "float":
case "double precision":
case "binary_double": case "binary_double":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(126)"]); _dicDbToCs.TryAdd(dbfull, _dicDbToCs["float(126)"]);
return OdbcType.Double; return OdbcType.Double;