From 5e336a017349082505132777ce5fd291031a5afa Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 13 Apr 2020 19:00:22 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20DbFirst=20=E8=8E=B7?=
=?UTF-8?q?=E5=8F=96=E5=AD=97=E6=AE=B5=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PostgreSQL/PostgreSQLDbFirstTest.cs | 2 +-
FreeSql/DatabaseModel/DBColumnInfo.cs | 4 +++
FreeSql/FreeSql.xml | 5 ++++
.../FreeSql.Provider.MySql/MySqlDbFirst.cs | 7 +++--
.../Dameng/OdbcDamengDbFirst.cs | 10 +++++--
.../MySql/OdbcMySqlDbFirst.cs | 7 +++--
.../Oracle/OdbcOracleDbFirst.cs | 29 +++++++++++++++++--
.../PostgreSQL/OdbcPostgreSQLDbFirst.cs | 4 ++-
.../SqlServer/OdbcSqlServerDbFirst.cs | 14 ++++++---
.../FreeSql.Provider.Oracle/OracleDbFirst.cs | 29 +++++++++++++++++--
.../PostgreSQLDbFirst.cs | 4 ++-
.../SqlServerDbFirst.cs | 14 ++++++---
.../FreeSql.Provider.Sqlite/SqliteDbFirst.cs | 7 +++--
13 files changed, 110 insertions(+), 26 deletions(-)
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLDbFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLDbFirstTest.cs
index 497e9c0f..e32c5ffb 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLDbFirstTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLDbFirstTest.cs
@@ -18,7 +18,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
public void GetTablesByDatabase()
{
- var t2 = g.pgsql.DbFirst.GetTablesByDatabase(g.pgsql.DbFirst.GetDatabases()[1]);
+ var t2 = g.pgsql.DbFirst.GetTablesByDatabase(g.pgsql.DbFirst.GetDatabases()[2]);
}
}
diff --git a/FreeSql/DatabaseModel/DBColumnInfo.cs b/FreeSql/DatabaseModel/DBColumnInfo.cs
index 4ede12b5..f20ee737 100644
--- a/FreeSql/DatabaseModel/DBColumnInfo.cs
+++ b/FreeSql/DatabaseModel/DBColumnInfo.cs
@@ -48,5 +48,9 @@ namespace FreeSql.DatabaseModel
/// 备注
///
public string Coment { get; set; }
+ ///
+ /// 数据库默认值
+ ///
+ public string DefaultValue { get; set; }
}
}
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 18542e5f..60f4a9ad 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -440,6 +440,11 @@
备注
+
+
+ 数据库默认值
+
+
枚举类型标识
diff --git a/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
index 25bba990..3669cf14 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
@@ -238,7 +238,8 @@ ifnull(a.character_maximum_length, 0) 'len',
a.column_type,
case when a.is_nullable = 'YES' then 1 else 0 end 'is_nullable',
case when locate('auto_increment', a.extra) > 0 then 1 else 0 end 'is_identity',
-a.column_comment 'comment'
+a.column_comment 'comment',
+a.column_default 'default_value'
from information_schema.columns a
where a.table_schema in ({1}) and {0}
", loc8, databaseIn);
@@ -257,6 +258,7 @@ where a.table_schema in ({1}) and {0}
bool is_nullable = string.Concat(row[5]) == "1";
bool is_identity = string.Concat(row[6]) == "1";
string comment = string.Concat(row[7]);
+ string defaultValue = string.Concat(row[8]);
if (max_length == 0) max_length = -1;
if (database.Length == 1)
{
@@ -272,7 +274,8 @@ where a.table_schema in ({1}) and {0}
DbTypeText = type,
DbTypeTextFull = sqlType,
Table = loc2[table_id],
- Coment = comment
+ Coment = comment,
+ DefaultValue = defaultValue
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
index 0edc66c7..ff398cc7 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
@@ -307,7 +307,8 @@ a.data_scale,
a.char_used,
case when a.nullable = 'N' then 0 else 1 end,
nvl((select 1 from user_sequences where upper(sequence_name)=upper(a.table_name||'_seq_'||a.column_name) and rownum < 2), 0),
-b.comments
+b.comments,
+a.data_default
from all_tab_cols a
left join all_col_comments b on b.owner = a.owner and b.table_name = a.table_name and b.column_name = a.column_name
where a.owner in ({1}) and {0}
@@ -318,7 +319,7 @@ where a.owner in ({1}) and {0}
var ds2 = new List