mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 修复 3.2.696 自动分表 bug;#1527 e79860164d5d12e4f7df747f0e29503dff301cb7
This commit is contained in:
parent
3c47aaf8fe
commit
6ab7766d74
@ -601,113 +601,21 @@ namespace base_entity
|
||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||
#endregion
|
||||
|
||||
var iouSetSql01 = fsql.InsertOrUpdate<User1>()
|
||||
.SetSource(Enumerable.Range(0, 5).Select(a => new User1 { Id = Guid.NewGuid(), Nickname = $"nickname{a}", Username = $"username{a}", Description = $"desc{a}" }).ToArray())
|
||||
.UpdateSet((a, b) => a.Sort == b.Sort + 10)
|
||||
.UpdateSet((a, b) => a.Nickname == "xxx")
|
||||
.ToSql();
|
||||
|
||||
|
||||
var sqlastable1 = fsql.Select<CurrentDetail>(101).AsTable((t, o) => "current_detail_230501").ToSql();
|
||||
var sqlastable2 = fsql.Update<CurrentDetail>(101).AsTable("current_detail_230501").Set(t => t.StatuId, 1).ToSql();
|
||||
var sqlastable3 = fsql.Delete<CurrentDetail>(101).AsTable("current_detail_230501").ToSql();
|
||||
|
||||
fsql.Delete<OracleLongRaw1>().Where("1=1").ExecuteAffrows();
|
||||
var longRawData = Encoding.UTF8.GetBytes(string.Join(",", Enumerable.Range(1, 2000).Select(a => "中国人")));
|
||||
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(false).ExecuteAffrows();
|
||||
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(true).ExecuteAffrows();
|
||||
var longRaw1 = fsql.Select<OracleLongRaw1>().ToList();
|
||||
|
||||
MarketingRestrictions restrictions = new MarketingRestrictions();
|
||||
|
||||
if (restrictions.Id == Guid.Empty)
|
||||
{
|
||||
restrictions.CreatedBy = 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
restrictions.UpdatedBy = 100;
|
||||
restrictions.UpdatedTime = DateTime.Now;
|
||||
}
|
||||
|
||||
int ret = fsql.InsertOrUpdate<MarketingRestrictions>()
|
||||
.SetSource(restrictions)
|
||||
.UpdateColumns(r => new {
|
||||
r.Describe,
|
||||
r.IsLimitUsePoints,
|
||||
r.Status,
|
||||
r.StartTime,
|
||||
r.EndTime,
|
||||
r.UpdatedBy,
|
||||
r.UpdatedTime
|
||||
})
|
||||
.ExecuteAffrows();
|
||||
|
||||
|
||||
var query2222 = fsql.Select<Student2222>()
|
||||
.AsTable((t, o) => string.Format(o, "hash2"))
|
||||
.Where(p => p.Name.Contains("search"))
|
||||
.GroupBy(a => new { a.ClassId })
|
||||
.WithTempQuery(a => a.Key);
|
||||
var sql11111 = fsql.Select<Class1111>()
|
||||
.AsTable((t, o) => string.Format(o, "hash1"))
|
||||
.Where(s => query2222
|
||||
.ToList(p => p.ClassId)
|
||||
.Contains(s.Id))
|
||||
.ToSql(s => new
|
||||
{
|
||||
s.Id,
|
||||
s.Name,
|
||||
});
|
||||
|
||||
var isusers01 = fsql.Select<Achievement>()
|
||||
.Where(e => e.Property("项目执行情况") == "结题")
|
||||
.GroupBy(e => new { ProjectLevel = e.Property("项目级别") })
|
||||
.ToSql(e => new
|
||||
{
|
||||
e.Key.ProjectLevel,
|
||||
Test = e.Value.Group.Property("批准经费总额(万元)"),
|
||||
});
|
||||
isusers01 = fsql.Select<Achievement>()
|
||||
.Where(e => e.Property("项目执行情况") == "结题")
|
||||
.GroupBy(e => new { ProjectLevel = e.Property("项目级别") })
|
||||
.WithTempQuery(e => new
|
||||
{
|
||||
e.Key.ProjectLevel,
|
||||
Test = e.Value.Group.Property("批准经费总额(万元)"),
|
||||
})
|
||||
.ToSql();
|
||||
|
||||
var bulkUsers = new[] {
|
||||
new IdentityUser1 { Nickname = "nickname11", Username = "username11" },
|
||||
new IdentityUser1 { Nickname = "nickname12", Username = "username12" },
|
||||
new IdentityUser1 { Nickname = "nickname13", Username = "username13" },
|
||||
|
||||
new IdentityUser1 { Nickname = "nickname21", Username = "username21" },
|
||||
new IdentityUser1 { Nickname = "nickname22", Username = "username22" },
|
||||
new IdentityUser1 { Nickname = "nickname23", Username = "username23" }
|
||||
};
|
||||
fsql.Insert(bulkUsers).NoneParameter().ExecuteAffrows();
|
||||
fsql.Insert(bulkUsers).IgnoreInsertValueSql(a => a.Nickname).NoneParameter().ExecuteAffrows();
|
||||
bulkUsers = fsql.Select<IdentityUser1>().OrderByDescending(a => a.Id).Limit(3).ToList().ToArray();
|
||||
bulkUsers[0].Nickname += "_bulkupdate";
|
||||
bulkUsers[1].Nickname += "_bulkupdate";
|
||||
bulkUsers[2].Nickname += "_bulkupdate";
|
||||
fsql.Update<IdentityUser1>().SetSource(bulkUsers).ExecuteSqlBulkCopy();
|
||||
|
||||
|
||||
var objtsql1 = fsql.Select<object>().WithSql("select * from user1").ToList();
|
||||
var objtsql2 = fsql.Select<object>().WithSql("select * from user1").ToList<User1>();
|
||||
|
||||
var astsql = fsql.Select<AsTableLog, Sys_owner>()
|
||||
.InnerJoin((a, b) => a.id == b.Id)
|
||||
.OrderBy((a,b) => a.createtime)
|
||||
.OrderBy((a, b) => a.createtime)
|
||||
.ToSql();
|
||||
|
||||
|
||||
//var table = fsql.CodeFirst.GetTableByEntity(typeof(AsTableLog));
|
||||
//table.SetAsTable(new ModAsTableImpl(fsql), table.ColumnsByCs[nameof(AsTableLog.click)]);
|
||||
|
||||
|
||||
var testitems = new[]
|
||||
{
|
||||
new AsTableLog{ msg = "msg01", createtime = DateTime.Parse("2022-1-1 13:00:11"), click = 1 },
|
||||
@ -725,6 +633,10 @@ var sql11111 = fsql.Select<Class1111>()
|
||||
var sqlat = sqlatb.ToSql();
|
||||
var sqlatr = sqlatb.ExecuteAffrows();
|
||||
|
||||
//var sqlatc1 = fsql.Delete<AsTableLog>().Where(a => a.click < 0);
|
||||
//var sqlatca1 = sqlatc1.ToSql();
|
||||
//var sqlatcr1 = sqlatc1.ExecuteAffrows();
|
||||
|
||||
var sqlatc1 = fsql.Delete<AsTableLog>().Where(a => a.id == Guid.NewGuid() && a.createtime == DateTime.Parse("2022-3-8 15:00:13"));
|
||||
var sqlatca1 = sqlatc1.ToSql();
|
||||
var sqlatcr1 = sqlatc1.ExecuteAffrows();
|
||||
@ -815,6 +727,101 @@ var sql11111 = fsql.Select<Class1111>()
|
||||
});
|
||||
|
||||
|
||||
var iouSetSql01 = fsql.InsertOrUpdate<User1>()
|
||||
.SetSource(Enumerable.Range(0, 5).Select(a => new User1 { Id = Guid.NewGuid(), Nickname = $"nickname{a}", Username = $"username{a}", Description = $"desc{a}" }).ToArray())
|
||||
.UpdateSet((a, b) => a.Sort == b.Sort + 10)
|
||||
.UpdateSet((a, b) => a.Nickname == "xxx")
|
||||
.ToSql();
|
||||
|
||||
fsql.Delete<OracleLongRaw1>().Where("1=1").ExecuteAffrows();
|
||||
var longRawData = Encoding.UTF8.GetBytes(string.Join(",", Enumerable.Range(1, 2000).Select(a => "中国人")));
|
||||
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(false).ExecuteAffrows();
|
||||
fsql.Insert(new OracleLongRaw1 { data = longRawData }).NoneParameter(true).ExecuteAffrows();
|
||||
var longRaw1 = fsql.Select<OracleLongRaw1>().ToList();
|
||||
|
||||
MarketingRestrictions restrictions = new MarketingRestrictions();
|
||||
|
||||
if (restrictions.Id == Guid.Empty)
|
||||
{
|
||||
restrictions.CreatedBy = 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
restrictions.UpdatedBy = 100;
|
||||
restrictions.UpdatedTime = DateTime.Now;
|
||||
}
|
||||
|
||||
int ret = fsql.InsertOrUpdate<MarketingRestrictions>()
|
||||
.SetSource(restrictions)
|
||||
.UpdateColumns(r => new {
|
||||
r.Describe,
|
||||
r.IsLimitUsePoints,
|
||||
r.Status,
|
||||
r.StartTime,
|
||||
r.EndTime,
|
||||
r.UpdatedBy,
|
||||
r.UpdatedTime
|
||||
})
|
||||
.ExecuteAffrows();
|
||||
|
||||
|
||||
var query2222 = fsql.Select<Student2222>()
|
||||
.AsTable((t, o) => string.Format(o, "hash2"))
|
||||
.Where(p => p.Name.Contains("search"))
|
||||
.GroupBy(a => new { a.ClassId })
|
||||
.WithTempQuery(a => a.Key);
|
||||
var sql11111 = fsql.Select<Class1111>()
|
||||
.AsTable((t, o) => string.Format(o, "hash1"))
|
||||
.Where(s => query2222
|
||||
.ToList(p => p.ClassId)
|
||||
.Contains(s.Id))
|
||||
.ToSql(s => new
|
||||
{
|
||||
s.Id,
|
||||
s.Name,
|
||||
});
|
||||
|
||||
var isusers01 = fsql.Select<Achievement>()
|
||||
.Where(e => e.Property("项目执行情况") == "结题")
|
||||
.GroupBy(e => new { ProjectLevel = e.Property("项目级别") })
|
||||
.ToSql(e => new
|
||||
{
|
||||
e.Key.ProjectLevel,
|
||||
Test = e.Value.Group.Property("批准经费总额(万元)"),
|
||||
});
|
||||
isusers01 = fsql.Select<Achievement>()
|
||||
.Where(e => e.Property("项目执行情况") == "结题")
|
||||
.GroupBy(e => new { ProjectLevel = e.Property("项目级别") })
|
||||
.WithTempQuery(e => new
|
||||
{
|
||||
e.Key.ProjectLevel,
|
||||
Test = e.Value.Group.Property("批准经费总额(万元)"),
|
||||
})
|
||||
.ToSql();
|
||||
|
||||
var bulkUsers = new[] {
|
||||
new IdentityUser1 { Nickname = "nickname11", Username = "username11" },
|
||||
new IdentityUser1 { Nickname = "nickname12", Username = "username12" },
|
||||
new IdentityUser1 { Nickname = "nickname13", Username = "username13" },
|
||||
|
||||
new IdentityUser1 { Nickname = "nickname21", Username = "username21" },
|
||||
new IdentityUser1 { Nickname = "nickname22", Username = "username22" },
|
||||
new IdentityUser1 { Nickname = "nickname23", Username = "username23" }
|
||||
};
|
||||
fsql.Insert(bulkUsers).NoneParameter().ExecuteAffrows();
|
||||
fsql.Insert(bulkUsers).IgnoreInsertValueSql(a => a.Nickname).NoneParameter().ExecuteAffrows();
|
||||
bulkUsers = fsql.Select<IdentityUser1>().OrderByDescending(a => a.Id).Limit(3).ToList().ToArray();
|
||||
bulkUsers[0].Nickname += "_bulkupdate";
|
||||
bulkUsers[1].Nickname += "_bulkupdate";
|
||||
bulkUsers[2].Nickname += "_bulkupdate";
|
||||
fsql.Update<IdentityUser1>().SetSource(bulkUsers).ExecuteSqlBulkCopy();
|
||||
|
||||
|
||||
var objtsql1 = fsql.Select<object>().WithSql("select * from user1").ToList();
|
||||
var objtsql2 = fsql.Select<object>().WithSql("select * from user1").ToList<User1>();
|
||||
|
||||
|
||||
|
||||
var usergroupRepository = fsql.GetAggregateRootRepository<UserGroup>();
|
||||
usergroupRepository.Delete(a => true);
|
||||
usergroupRepository.Insert(new[]{
|
||||
|
@ -1073,6 +1073,82 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder">
|
||||
<summary>
|
||||
动态创建实体类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.#ctor(IFreeSql,System.String,System.Attribute[])">
|
||||
<summary>
|
||||
配置Class
|
||||
</summary>
|
||||
<param name="className">类名</param>
|
||||
<param name="attributes">类标记的特性[Table(Name = "xxx")] [Index(xxxx)]</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Attribute[])">
|
||||
<summary>
|
||||
配置属性
|
||||
</summary>
|
||||
<param name="propertyName">属性名称</param>
|
||||
<param name="propertyType">属性类型</param>
|
||||
<param name="attributes">属性标记的特性-支持多个</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Boolean,System.Attribute[])">
|
||||
<summary>
|
||||
配置属性
|
||||
</summary>
|
||||
<param name="propertyName">属性名称</param>
|
||||
<param name="propertyType">属性类型</param>
|
||||
<param name="isOverride">该属性是否重写父类属性</param>
|
||||
<param name="attributes">属性标记的特性-支持多个</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Property(System.String,System.Type,System.Boolean,System.Object,System.Attribute[])">
|
||||
<summary>
|
||||
配置属性
|
||||
</summary>
|
||||
<param name="propertyName">属性名称</param>
|
||||
<param name="propertyType">属性类型</param>
|
||||
<param name="isOverride">该属性是否重写父类属性</param>
|
||||
<param name="defaultValue">属性默认值</param>
|
||||
<param name="attributes">属性标记的特性-支持多个</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Extend(System.Type)">
|
||||
<summary>
|
||||
配置父类
|
||||
</summary>
|
||||
<param name="superClass">父类类型</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.OverrideProperty(System.Reflection.Emit.TypeBuilder@,System.Reflection.Emit.MethodBuilder,FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.PropertyMethodEnum,System.String)">
|
||||
<summary>
|
||||
Override属性
|
||||
</summary>
|
||||
<param name="typeBuilder"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.Build">
|
||||
<summary>
|
||||
Emit动态创建出Class - Type
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.FirstCharToLower(System.String)">
|
||||
<summary>
|
||||
首字母小写
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.DynamicEntity.DynamicCompileBuilder.FirstCharToUpper(System.String)">
|
||||
<summary>
|
||||
首字母大写
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.EntityUtil.EntityUtilExtensions.GetEntityKeyString(IFreeSql,System.Type,System.Object,System.Boolean,System.String)">
|
||||
<summary>
|
||||
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 null
|
||||
@ -5710,6 +5786,28 @@
|
||||
请使用 fsql.InsertDict(dict) 方法插入字典数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSqlGlobalDynamicEntityExtensions.DynamicEntity(FreeSql.ICodeFirst,System.String,System.Attribute[])">
|
||||
<summary>
|
||||
动态构建Class Type
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSqlGlobalDynamicEntityExtensions.CreateInstance(FreeSql.Internal.Model.TableInfo,System.Collections.Generic.Dictionary{System.String,System.Object})">
|
||||
<summary>
|
||||
根据字典,创建 table 对应的实体对象
|
||||
</summary>
|
||||
<param name="table"></param>
|
||||
<param name="dict"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSqlGlobalDynamicEntityExtensions.CreateDictionary(FreeSql.Internal.Model.TableInfo,System.Object)">
|
||||
<summary>
|
||||
根据实体对象,创建 table 对应的字典
|
||||
</summary>
|
||||
<param name="table"></param>
|
||||
<param name="instance"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSqlGlobalExpressionCallExtensions.Between(System.DateTime,System.DateTime,System.DateTime)">
|
||||
<summary>
|
||||
C#: that >= between && that <= and<para></para>
|
||||
|
@ -196,7 +196,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
if (_table.AsTableImpl != null && _tableRule != null && string.IsNullOrWhiteSpace(_tableRule(_table.DbName)) == true)
|
||||
if (_table.AsTableImpl != null && string.IsNullOrWhiteSpace(_tableRule?.Invoke(_table.DbName)) == true)
|
||||
{
|
||||
var oldTableRule = _tableRule;
|
||||
var names = _table.AsTableImpl.GetTableNamesBySqlWhere(newwhere.ToString(), _params, new SelectTableInfo { Table = _table }, _commonUtils);
|
||||
@ -231,7 +231,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
}
|
||||
|
||||
var sb = new StringBuilder();
|
||||
if (_table.AsTableImpl != null && _tableRule != null && string.IsNullOrWhiteSpace(_tableRule(_table.DbName)) == true)
|
||||
if (_table.AsTableImpl != null && string.IsNullOrWhiteSpace(_tableRule?.Invoke(_table.DbName)) == true)
|
||||
{
|
||||
var oldTableRule = _tableRule;
|
||||
var names = _table.AsTableImpl.GetTableNamesBySqlWhere(newwhere.ToString(), _params, new SelectTableInfo { Table = _table }, _commonUtils);
|
||||
|
@ -1008,7 +1008,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
ToSqlWhere(newwhere);
|
||||
|
||||
var sb = new StringBuilder();
|
||||
if (_table.AsTableImpl != null && _tableRule != null && string.IsNullOrWhiteSpace(_tableRule(_table.DbName)) == true)
|
||||
if (_table.AsTableImpl != null && string.IsNullOrWhiteSpace(_tableRule?.Invoke(_table.DbName)) == true)
|
||||
{
|
||||
var oldTableRule = _tableRule;
|
||||
var names = _table.AsTableImpl.GetTableNamesBySqlWhere(newwhere.ToString(), _params, new SelectTableInfo { Table = _table }, _commonUtils);
|
||||
@ -1042,7 +1042,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
ToSqlWhere(newwhere);
|
||||
|
||||
var sb = new StringBuilder();
|
||||
if (_table.AsTableImpl != null && _tableRule != null && string.IsNullOrWhiteSpace(_tableRule(_table.DbName)) == true)
|
||||
if (_table.AsTableImpl != null && string.IsNullOrWhiteSpace(_tableRule?.Invoke(_table.DbName)) == true)
|
||||
{
|
||||
var oldTableRule = _tableRule;
|
||||
var names = _table.AsTableImpl.GetTableNamesBySqlWhere(newwhere.ToString(), _params, new SelectTableInfo { Table = _table }, _commonUtils);
|
||||
|
Loading…
x
Reference in New Issue
Block a user