mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +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>().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();
|
||||
Assert.Equal(0, g.dameng.Select<ToUpd2Pk>().Count());
|
||||
g.dameng.Insert(new[] {
|
||||
|
@ -555,6 +555,26 @@
|
||||
导航属性
|
||||
</summary>
|
||||
</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">
|
||||
<summary>
|
||||
配置名称
|
||||
|
@ -172,6 +172,10 @@ namespace FreeSql.Tests.Sqlite
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
class TestDto3
|
||||
{
|
||||
public string title { get; set; } //这是join表的属性
|
||||
}
|
||||
class TestDtoLeftJoin
|
||||
{
|
||||
[Column(IsPrimary = true)]
|
||||
@ -208,6 +212,8 @@ namespace FreeSql.Tests.Sqlite
|
||||
var testDto213 = select.Limit(10).ToList(a => new TestDto2 { });
|
||||
var testDto214 = select.Limit(10).ToList(a => new 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 testDto2222 = select.LeftJoin(a => a.Type.Guid == a.TypeGuid).Limit(10).ToList(a => new TestDto2());
|
||||
|
@ -2,6 +2,7 @@
|
||||
using FreeSql.DataAnnotations;
|
||||
using FreeSql.Internal;
|
||||
using FreeSql.Internal.CommonProvider;
|
||||
using MySql.Data.MySqlClient;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
@ -33,6 +34,46 @@ namespace FreeSql.Tests
|
||||
.ToSql();
|
||||
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);
|
||||
|
||||
|
||||
//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
|
||||
{
|
||||
|
@ -393,6 +393,8 @@ namespace FreeSql.Internal.CommonProvider
|
||||
if (_params.Any()) del._params = new List<DbParameter>(_params.ToArray());
|
||||
if (_whereGlobalFilter.Any()) del._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
||||
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)
|
||||
{
|
||||
case DataType.Dameng:
|
||||
@ -421,6 +423,8 @@ namespace FreeSql.Internal.CommonProvider
|
||||
if (_params.Any()) upd._params = new List<DbParameter>(_params.ToArray());
|
||||
if (_whereGlobalFilter.Any()) upd._whereGlobalFilter = new List<GlobalFilter.Item>(_whereGlobalFilter.ToArray());
|
||||
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)
|
||||
{
|
||||
case DataType.Dameng:
|
||||
|
Loading…
x
Reference in New Issue
Block a user