mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-07 00:40:55 +08:00
- 修复 WithMemory 首行为 NULL 值的情况;#2047
This commit is contained in:
@@ -764,5 +764,13 @@
|
||||
<param name="that"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Reflection.Assembly[])">
|
||||
<summary>
|
||||
批量注入 Repository,可以参考代码自行调整
|
||||
</summary>
|
||||
<param name="services"></param>
|
||||
<param name="assemblies"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
@@ -295,7 +295,32 @@ namespace FreeSql.Internal.CommonProvider
|
||||
else
|
||||
{
|
||||
object val = col.GetDbValue(d);
|
||||
sb.Append(_commonUtils.RewriteColumn(col, _commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col, col.Attribute.MapType, val)));
|
||||
var valsql = _commonUtils.RewriteColumn(col, _commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col, col.Attribute.MapType, val));
|
||||
if (didx == 0 && valsql == "NULL")
|
||||
{
|
||||
var dbtype = _orm.CodeFirst.GetDbInfo(col.Attribute.MapType)?.dbtype;
|
||||
if (!string.IsNullOrWhiteSpace(dbtype))
|
||||
{
|
||||
switch (_orm.Ado.DataType)
|
||||
{
|
||||
case DataType.MsAccess:
|
||||
case DataType.Odbc:
|
||||
case DataType.Custom:
|
||||
break; // MsAccess 不支持 cast(null as xxx),直接用 NULL
|
||||
case DataType.PostgreSQL:
|
||||
case DataType.OdbcPostgreSQL:
|
||||
case DataType.CustomPostgreSQL:
|
||||
case DataType.KingbaseES:
|
||||
case DataType.ShenTong:
|
||||
valsql = $"NULL::{_orm.CodeFirst.GetDbInfo(col.Attribute.MapType)?.dbtype}";
|
||||
break;
|
||||
default:
|
||||
valsql = $"cast(NULL as {_orm.CodeFirst.GetDbInfo(col.Attribute.MapType)?.dbtype})";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
sb.Append(valsql);
|
||||
}
|
||||
if (didx == 0) sb.Append(" as ").Append(_commonUtils.QuoteSqlName(col.Attribute.Name));
|
||||
++colidx2;
|
||||
|
||||
Reference in New Issue
Block a user