mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 ISelect.AsTable 后 .ToUpdate/ToDelete 无效的 bug;#815
This commit is contained in:
parent
0aa389c118
commit
def3ebdeff
@ -1688,6 +1688,9 @@ WHERE (((to_char(a.""ID"")) in (SELECT b.""TITLE""
|
|||||||
Assert.Equal(5, g.dameng.Select<ToUpd1Pk>().Count());
|
Assert.Equal(5, g.dameng.Select<ToUpd1Pk>().Count());
|
||||||
Assert.Equal(5, g.dameng.Select<ToUpd1Pk>().Where(a => a.name.StartsWith("nick")).Count());
|
Assert.Equal(5, g.dameng.Select<ToUpd1Pk>().Where(a => a.name.StartsWith("nick")).Count());
|
||||||
|
|
||||||
|
var toupdateSql1 = g.dameng.Select<ToUpd1Pk>().Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ToSql();
|
||||||
|
var toupdateSql2 = g.dameng.Select<ToUpd1Pk>().AsTable((_, old) => "toupd1pk_test").Where(a => a.name.StartsWith("name")).ToUpdate().Set(a => a.name, "nick?").ToSql();
|
||||||
|
|
||||||
g.dameng.Select<ToUpd2Pk>().ToDelete().ExecuteAffrows();
|
g.dameng.Select<ToUpd2Pk>().ToDelete().ExecuteAffrows();
|
||||||
Assert.Equal(0, g.dameng.Select<ToUpd2Pk>().Count());
|
Assert.Equal(0, g.dameng.Select<ToUpd2Pk>().Count());
|
||||||
g.dameng.Insert(new[] {
|
g.dameng.Insert(new[] {
|
||||||
|
@ -555,6 +555,26 @@
|
|||||||
导航属性
|
导航属性
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:FreeSql.Tests.UnitTest5.SystemUserType.Unknow">
|
||||||
|
<summary>
|
||||||
|
未知的权限
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:FreeSql.Tests.UnitTest5.SystemUserType.SuperAdmin">
|
||||||
|
<summary>
|
||||||
|
超级管理员
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:FreeSql.Tests.UnitTest5.SystemUserType.TenantAdmin">
|
||||||
|
<summary>
|
||||||
|
机构管理员
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:FreeSql.Tests.UnitTest5.SystemUserType.StroeAdmin">
|
||||||
|
<summary>
|
||||||
|
门店管理员
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:AME.Helpers.AppSettingII.SettingName">
|
<member name="P:AME.Helpers.AppSettingII.SettingName">
|
||||||
<summary>
|
<summary>
|
||||||
配置名称
|
配置名称
|
||||||
|
@ -172,6 +172,10 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class TestDto3
|
||||||
|
{
|
||||||
|
public string title { get; set; } //这是join表的属性
|
||||||
|
}
|
||||||
class TestDtoLeftJoin
|
class TestDtoLeftJoin
|
||||||
{
|
{
|
||||||
[Column(IsPrimary = true)]
|
[Column(IsPrimary = true)]
|
||||||
@ -208,6 +212,8 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
var testDto213 = select.Limit(10).ToList(a => new TestDto2 { });
|
var testDto213 = select.Limit(10).ToList(a => new TestDto2 { });
|
||||||
var testDto214 = select.Limit(10).ToList(a => new TestDto2() { });
|
var testDto214 = select.Limit(10).ToList(a => new TestDto2() { });
|
||||||
var testDto215 = select.Limit(10).ToList<TestDto2>();
|
var testDto215 = select.Limit(10).ToList<TestDto2>();
|
||||||
|
var testDto216 = select.Limit(10).ToList<TestDto3>();
|
||||||
|
|
||||||
|
|
||||||
var testDto2211 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto2(a.Id, a.Title));
|
var testDto2211 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto2(a.Id, a.Title));
|
||||||
var testDto2222 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto2());
|
var testDto2222 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto2());
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using FreeSql.DataAnnotations;
|
using FreeSql.DataAnnotations;
|
||||||
using FreeSql.Internal;
|
using FreeSql.Internal;
|
||||||
using FreeSql.Internal.CommonProvider;
|
using FreeSql.Internal.CommonProvider;
|
||||||
|
using MySql.Data.MySqlClient;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
@ -33,6 +34,46 @@ namespace FreeSql.Tests
|
|||||||
.ToSql();
|
.ToSql();
|
||||||
Assert.Equal(@"UPDATE `ProductStockBak` SET `NotTaxTotalCostPrice` = 47.844297 * `CurrentQty`, `NotTaxCostPrice` = 47.844297
|
Assert.Equal(@"UPDATE `ProductStockBak` SET `NotTaxTotalCostPrice` = 47.844297 * `CurrentQty`, `NotTaxCostPrice` = 47.844297
|
||||||
WHERE (`ProductId` = '00000000-0000-0000-0000-000000000000' AND `MerchantId` = '00000000-0000-0000-0000-000000000000')", sql);
|
WHERE (`ProductId` = '00000000-0000-0000-0000-000000000000' AND `MerchantId` = '00000000-0000-0000-0000-000000000000')", sql);
|
||||||
|
|
||||||
|
|
||||||
|
//fsql.Aop.CommandBefore += (_, e) =>
|
||||||
|
//{
|
||||||
|
// foreach (MySqlParameter cp in e.Command.Parameters)
|
||||||
|
// if (cp.MySqlDbType == MySqlDbType.Enum) cp.MySqlDbType = MySqlDbType.Int32;
|
||||||
|
//};
|
||||||
|
|
||||||
|
var aaa = fsql.Ado.QuerySingle<string>("select ?et", new Dictionary<string, object>
|
||||||
|
{
|
||||||
|
["et"] = SystemUserType.StroeAdmin
|
||||||
|
});
|
||||||
|
|
||||||
|
using (var conn = fsql.Ado.MasterPool.Get())
|
||||||
|
{
|
||||||
|
var cmd = conn.Value.CreateCommand();
|
||||||
|
cmd.CommandText = "select ?et";
|
||||||
|
cmd.Parameters.Add(new MySqlParameter("et", SystemUserType.StroeAdmin));
|
||||||
|
var aaa2 = cmd.ExecuteScalar();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SystemUserType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 未知的权限
|
||||||
|
/// </summary>
|
||||||
|
Unknow = 0,
|
||||||
|
/// <summary>
|
||||||
|
/// 超级管理员
|
||||||
|
/// </summary>
|
||||||
|
SuperAdmin = 1,
|
||||||
|
/// <summary>
|
||||||
|
/// 机构管理员
|
||||||
|
/// </summary>
|
||||||
|
TenantAdmin = 2,
|
||||||
|
/// <summary>
|
||||||
|
/// 门店管理员
|
||||||
|
/// </summary>
|
||||||
|
StroeAdmin = 3
|
||||||
}
|
}
|
||||||
public partial class ProductStockBak
|
public partial class ProductStockBak
|
||||||
{
|
{
|
||||||
|
@ -393,6 +393,8 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
if (_params.Any()) del._params = new List<DbParameter>(_params.ToArray());
|
if (_params.Any()) del._params = new List<DbParameter>(_params.ToArray());
|
||||||
if (_whereGlobalFilter.Any()) del._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
if (_whereGlobalFilter.Any()) del._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
||||||
del.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout);
|
del.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout);
|
||||||
|
var trytbname = "";
|
||||||
|
del.AsTable(old => GetTableRuleUnions().FirstOrDefault()?.TryGetValue(_tables[0].Table.Type, out trytbname) == true ? trytbname : null);
|
||||||
switch (_orm.Ado.DataType)
|
switch (_orm.Ado.DataType)
|
||||||
{
|
{
|
||||||
case DataType.Dameng:
|
case DataType.Dameng:
|
||||||
@ -421,6 +423,8 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
if (_params.Any()) upd._params = new List<DbParameter>(_params.ToArray());
|
if (_params.Any()) upd._params = new List<DbParameter>(_params.ToArray());
|
||||||
if (_whereGlobalFilter.Any()) upd._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
if (_whereGlobalFilter.Any()) upd._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
||||||
upd.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout);
|
upd.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout);
|
||||||
|
var trytbname = "";
|
||||||
|
upd.AsTable(old => GetTableRuleUnions().FirstOrDefault()?.TryGetValue(_tables[0].Table.Type, out trytbname) == true ? trytbname : null);
|
||||||
switch (_orm.Ado.DataType)
|
switch (_orm.Ado.DataType)
|
||||||
{
|
{
|
||||||
case DataType.Dameng:
|
case DataType.Dameng:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user