mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
## v0.9.18
- 增加 PostgreSQL 的 Odbc 访问提供,相比 FreeSql.Provider.PostgreSQL 支持的类型更少; - 增加 通用的 Odbc 访问提供,不能迁移实体到数据库,不能 Skip 这样来分页,理论上能 crud 所有 odbc 数据库;
This commit is contained in:
@ -234,15 +234,13 @@ namespace FreeSql
|
||||
switch (_db.Orm.Ado.DataType)
|
||||
{
|
||||
case DataType.SqlServer:
|
||||
case DataType.OdbcSqlServer:
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
return true;
|
||||
case DataType.MySql:
|
||||
case DataType.Oracle:
|
||||
case DataType.Sqlite:
|
||||
default:
|
||||
if (_tableIdentitys.Length == 1 && _table.Primarys.Length == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (isThrow) throw new Exception($"不可添加,未设置主键的值:{_db.Orm.GetEntityString(_entityType, data)}");
|
||||
return false;
|
||||
}
|
||||
|
@ -34,7 +34,9 @@ namespace FreeSql
|
||||
switch (_db.Orm.Ado.DataType)
|
||||
{
|
||||
case DataType.SqlServer:
|
||||
case DataType.OdbcSqlServer:
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
if (_tableIdentitys.Length == 1 && _table.Primarys.Length == 1)
|
||||
{
|
||||
await DbContextExecCommandAsync();
|
||||
@ -56,9 +58,7 @@ namespace FreeSql
|
||||
await AddOrUpdateNavigateListAsync(data);
|
||||
}
|
||||
return;
|
||||
case DataType.MySql:
|
||||
case DataType.Oracle:
|
||||
case DataType.Sqlite:
|
||||
default:
|
||||
if (_tableIdentitys.Length == 1 && _table.Primarys.Length == 1)
|
||||
{
|
||||
await DbContextExecCommandAsync();
|
||||
@ -92,7 +92,9 @@ namespace FreeSql
|
||||
switch (_db.Orm.Ado.DataType)
|
||||
{
|
||||
case DataType.SqlServer:
|
||||
case DataType.OdbcSqlServer:
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
await DbContextExecCommandAsync();
|
||||
var rets = await this.OrmInsert(data).ExecuteInsertedAsync();
|
||||
if (rets.Count != data.Count()) throw new Exception($"特别错误:批量添加失败,{_db.Orm.Ado.DataType} 的返回数据,与添加的数目不匹配");
|
||||
@ -105,9 +107,7 @@ namespace FreeSql
|
||||
foreach (var item in data)
|
||||
await AddOrUpdateNavigateListAsync(item);
|
||||
return;
|
||||
case DataType.MySql:
|
||||
case DataType.Oracle:
|
||||
case DataType.Sqlite:
|
||||
default:
|
||||
foreach (var s in data)
|
||||
await AddPrivAsync(s, false);
|
||||
return;
|
||||
|
@ -34,7 +34,9 @@ namespace FreeSql
|
||||
switch (_db.Orm.Ado.DataType)
|
||||
{
|
||||
case DataType.SqlServer:
|
||||
case DataType.OdbcSqlServer:
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
if (_tableIdentitys.Length == 1)
|
||||
{
|
||||
DbContextExecCommand();
|
||||
@ -56,9 +58,7 @@ namespace FreeSql
|
||||
AddOrUpdateNavigateList(data);
|
||||
}
|
||||
return;
|
||||
case DataType.MySql:
|
||||
case DataType.Oracle:
|
||||
case DataType.Sqlite:
|
||||
default:
|
||||
if (_tableIdentitys.Length == 1)
|
||||
{
|
||||
DbContextExecCommand();
|
||||
@ -96,7 +96,9 @@ namespace FreeSql
|
||||
switch (_db.Orm.Ado.DataType)
|
||||
{
|
||||
case DataType.SqlServer:
|
||||
case DataType.OdbcSqlServer:
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
DbContextExecCommand();
|
||||
var rets = this.OrmInsert(data).ExecuteInserted();
|
||||
if (rets.Count != data.Count()) throw new Exception($"特别错误:批量添加失败,{_db.Orm.Ado.DataType} 的返回数据,与添加的数目不匹配");
|
||||
@ -109,9 +111,7 @@ namespace FreeSql
|
||||
foreach (var item in data)
|
||||
AddOrUpdateNavigateList(item);
|
||||
return;
|
||||
case DataType.MySql:
|
||||
case DataType.Oracle:
|
||||
case DataType.Sqlite:
|
||||
default:
|
||||
foreach (var s in data)
|
||||
AddPriv(s, false);
|
||||
return;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
|
||||
<Version>0.9.17</Version>
|
||||
<Version>0.9.18</Version>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Authors>YeXiangQin</Authors>
|
||||
<Description>FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite.</Description>
|
||||
|
Reference in New Issue
Block a user