【调整】db 回滚为同步事务模式

【修复】修复 db同步模式一些生成代码的编译错误(因为Bright框架代码调整引起)
main
walon 2021-03-09 18:55:27 +08:00
parent 788b054a06
commit 87877f4671
2 changed files with 12 additions and 6 deletions

View File

@ -38,6 +38,7 @@ namespace Luban.Job.Db.Generate
var template = t_beanRender ??= Template.Parse(@" var template = t_beanRender ??= Template.Parse(@"
{{ {{
name = x.name name = x.name
full_name = x.full_name
parent_def_type = x.parent_def_type parent_def_type = x.parent_def_type
fields = x.fields fields = x.fields
hierarchy_fields = x.hierarchy_fields hierarchy_fields = x.hierarchy_fields
@ -86,7 +87,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
{ {
if (this.InitedObjectId) if (this.InitedObjectId)
{ {
var txn = Bright.Transaction.TransactionContext.ThreadStaticTxn; var txn = Bright.Transaction.TransactionContext.ThreadStaticCtx;
if (txn == null) return {{field.internal_name}}; if (txn == null) return {{field.internal_name}};
var log = ({{field.log_type}})txn.GetField(_objectId_ + {{field.id}}); var log = ({{field.log_type}})txn.GetField(_objectId_ + {{field.id}});
return log != null ? log.Value : {{field.internal_name}}; return log != null ? log.Value : {{field.internal_name}};
@ -103,7 +104,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
{{~end~}} {{~end~}}
if (this.InitedObjectId) if (this.InitedObjectId)
{ {
var txn = Bright.Transaction.TransactionContext.ThreadStaticTxn; var txn = Bright.Transaction.TransactionContext.ThreadStaticCtx;
txn.PutField(_objectId_ + {{field.id}}, new {{field.log_type}}(this, value)); txn.PutField(_objectId_ + {{field.id}}, new {{field.log_type}}(this, value));
{{~if field.ctype.need_set_children_root}} {{~if field.ctype.need_set_children_root}}
value?.InitRoot(GetRoot()); value?.InitRoot(GetRoot());
@ -194,7 +195,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
public override int GetTypeId() => ID; public override int GetTypeId() => ID;
{{~end~}} {{~end~}}
protected override void InitChildrenRoot(Bright.Transaction.TKey root) protected override void InitChildrenRoot(Bright.Storage.TKey root)
{ {
{{~ for field in hierarchy_fields~}} {{~ for field in hierarchy_fields~}}
{{if need_set_children_root field.ctype}}{{field.internal_name}}?.InitRoot(root);{{end}} {{if need_set_children_root field.ctype}}{{field.internal_name}}?.InitRoot(root);{{end}}
@ -237,11 +238,11 @@ namespace {{x.namespace_with_top_module}}
public sealed class {{name}} public sealed class {{name}}
{ {
public static {{base_table_type}} Table { get; } = new {{internal_table_type}}({{x.table_uid}}); public static {{base_table_type}} Table { get; } = new {{internal_table_type}}();
private class {{internal_table_type}} : {{base_table_type}} private class {{internal_table_type}} : {{base_table_type}}
{ {
public {{internal_table_type}}(int tableId) : base(tableId) public {{internal_table_type}}() : base({{x.table_uid}}, ""{{x.full_name}}"")
{ {
} }
@ -276,6 +277,11 @@ public sealed class {{name}}
{ {
return Table.Select(key); return Table.Select(key);
} }
public static ValueTask<{{db_cs_define_type value_ttype}}> SelectAsync({{db_cs_define_type key_ttype}} key)
{
return Table.SelectAsync<{{db_cs_define_type value_ttype}}>(key);
}
} }
} }

View File

@ -99,7 +99,7 @@ namespace Luban.Job.Db
{ {
case "cs": case "cs":
{ {
var render = new AsyncCsRender(); var render = new SyncCsRender();
foreach (var c in ass.Types.Values) foreach (var c in ass.Types.Values)
{ {
tasks.Add(Task.Run(() => tasks.Add(Task.Run(() =>