mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
- 增加 达梦数据库 ODBC 适配,和单元测试,支持 CodeFirst 模式开发;
This commit is contained in:
@ -8,7 +8,7 @@ namespace FreeSql
|
||||
|
||||
MySql, SqlServer, PostgreSQL, Oracle, Sqlite,
|
||||
|
||||
OdbcOracle, OdbcSqlServer, OdbcMySql, OdbcPostgreSQL,
|
||||
OdbcOracle, OdbcSqlServer, OdbcMySql, OdbcPostgreSQL,
|
||||
|
||||
/// <summary>
|
||||
/// 通用的 Odbc 实现,只能做基本的 Crud 操作 <para></para>
|
||||
@ -19,6 +19,11 @@ namespace FreeSql
|
||||
///
|
||||
/// 适配新的 OdbcAdapter,请在 FreeSqlBuilder.Build 之后调用 IFreeSql.SetOdbcAdapter 方法设置
|
||||
/// </summary>
|
||||
Odbc
|
||||
Odbc,
|
||||
|
||||
/// <summary>
|
||||
/// 国产数据库达梦
|
||||
/// </summary>
|
||||
OdbcDameng,
|
||||
}
|
||||
}
|
||||
|
@ -484,6 +484,11 @@
|
||||
适配新的 OdbcAdapter,请在 FreeSqlBuilder.Build 之后调用 IFreeSql.SetOdbcAdapter 方法设置
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.DataType.OdbcDameng">
|
||||
<summary>
|
||||
国产数据库达梦
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.EntityUtil.EntityUtilExtensions.GetEntityKeyString(IFreeSql,System.Type,System.Object,System.Boolean,System.String)">
|
||||
<summary>
|
||||
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 null
|
||||
|
@ -200,6 +200,11 @@ namespace FreeSql
|
||||
if (type == null) throw new Exception("缺少 FreeSql 数据库实现包:FreeSql.Provider.Odbc.dll,可前往 nuget 下载");
|
||||
break;
|
||||
|
||||
case DataType.OdbcDameng:
|
||||
type = Type.GetType("FreeSql.Odbc.Dameng.OdbcDamengProvider`1,FreeSql.Provider.Odbc")?.MakeGenericType(typeof(TMark));
|
||||
if (type == null) throw new Exception("缺少 FreeSql 数据库实现包:FreeSql.Provider.Odbc.dll,可前往 nuget 下载");
|
||||
break;
|
||||
|
||||
default: throw new Exception("未指定 UseConnectionString");
|
||||
}
|
||||
}
|
||||
|
@ -122,6 +122,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (newname == _table.DbName) return _table.DbName;
|
||||
if (string.IsNullOrEmpty(newname)) return _table.DbName;
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) newname = newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) newname = newname.ToUpper();
|
||||
|
@ -374,6 +374,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (newname == _table.DbName) return _table.DbName;
|
||||
if (string.IsNullOrEmpty(newname)) return _table.DbName;
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) newname = newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) newname = newname.ToUpper();
|
||||
|
@ -917,7 +917,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
protected List<Dictionary<Type, string>> GetTableRuleUnions()
|
||||
{
|
||||
var unions = new List<Dictionary<Type, string>>();
|
||||
var trs = _tableRules.Any() ? _tableRules : new List<Func<Type, string, string>>(new[] { new Func<Type, string, string>((type, oldname) => oldname) });
|
||||
var trs = _tableRules.Any() ? _tableRules : new List<Func<Type, string, string>>(new[] { new Func<Type, string, string>((type, oldname) => null) });
|
||||
foreach (var tr in trs)
|
||||
{
|
||||
var dict = new Dictionary<Type, string>();
|
||||
|
@ -498,6 +498,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (_tableRule == null) return _table.DbName;
|
||||
var newname = _tableRule(_table.DbName);
|
||||
if (newname == _table.DbName) return _table.DbName;
|
||||
if (string.IsNullOrEmpty(newname)) return _table.DbName;
|
||||
if (_orm.CodeFirst.IsSyncStructureToLower) newname = newname.ToLower();
|
||||
if (_orm.CodeFirst.IsSyncStructureToUpper) newname = newname.ToUpper();
|
||||
|
@ -217,6 +217,7 @@ namespace FreeSql.Internal
|
||||
break;
|
||||
case DataType.Oracle:
|
||||
case DataType.OdbcOracle:
|
||||
case DataType.OdbcDameng:
|
||||
if (strlen < 0) colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1(4000)");
|
||||
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
||||
break;
|
||||
|
Reference in New Issue
Block a user