diff --git a/visualdev/Tnb.Vengine/Atrributes/VmodelSettingAttribute.cs b/visualdev/Tnb.Vengine/Atrributes/VmodelSettingAttribute.cs
index 2d893802..043bf4b3 100644
--- a/visualdev/Tnb.Vengine/Atrributes/VmodelSettingAttribute.cs
+++ b/visualdev/Tnb.Vengine/Atrributes/VmodelSettingAttribute.cs
@@ -6,12 +6,18 @@
[AttributeUsage(AttributeTargets.Class)]
public class VmodelSettingAttribute : Attribute
{
- public string Area { get; set; }
+ public string? Id { get; set; }
+ public string? Area { get; set; }
public string? Code { get; set; }
+ public VmodelSettingAttribute(string id)
+ {
+ Id = id;
+ }
public VmodelSettingAttribute(string area, string? code = null)
{
Area = area;
Code = code;
}
+
}
\ No newline at end of file
diff --git a/visualdev/Tnb.Vengine/DataAccess/DataAccess.cs b/visualdev/Tnb.Vengine/DataAccess/DataAccess.cs
index 32030571..41123296 100644
--- a/visualdev/Tnb.Vengine/DataAccess/DataAccess.cs
+++ b/visualdev/Tnb.Vengine/DataAccess/DataAccess.cs
@@ -1,9 +1,10 @@
using System.Collections.Concurrent;
-using System.Diagnostics;
using JNPF;
using JNPF.Common.Core.Manager;
using JNPF.Common.Extension;
+using JNPF.Common.Manager;
using JNPF.DependencyInjection;
+using Microsoft.Extensions.Caching.Memory;
using SqlSugar;
using Tnb.Core;
using Tnb.Vengine.Domain;
@@ -17,6 +18,7 @@ public class DataAccess : IDataAccess, ITransient, IDisposable
{
private const int MAX_PAGE_SIZE = 1000;
private static ISqlSugarClient? _db;
+ private readonly ICacheManager _cache;
protected ISqlSugarClient Db
{
@@ -43,9 +45,10 @@ public class DataAccess : IDataAccess, ITransient, IDisposable
///
/// 构造
///
- public DataAccess(IUserManager currentUser)
+ public DataAccess(IUserManager currentUser, ICacheManager cache)
{
_user = currentUser;
+ _cache = cache;
}
///
@@ -116,11 +119,17 @@ public class DataAccess : IDataAccess, ITransient, IDisposable
///
public async Task GetVmodelAsync(string id, bool loadNavigate = false)
{
- Vmodel vm = await Db.Queryable().FirstAsync(a => a.id == id && a.deleted == 0);
- ThrowIf.IsNull(vm, $"找不到id={id}的模型");
- if (loadNavigate)
+ var key = $"tnb.vmodel:{id}";
+ var vm = await _cache.GetAsync(key);
+ if (vm == null)
{
- await LoadVmodelNavigateAsync(vm);
+ vm = await Db.Queryable().FirstAsync(a => a.id == id && a.deleted == 0);
+ ThrowIf.IsNull(vm, $"找不到id={id}的模型");
+ if (loadNavigate)
+ {
+ await LoadVmodelNavigateAsync(vm);
+ }
+ await _cache.SetAsync(id, vm, TimeSpan.FromMinutes(10));
}
return vm;
}
diff --git a/visualdev/Tnb.VisualDev/Tnb.VisualDev.csproj b/visualdev/Tnb.VisualDev/Tnb.VisualDev.csproj
index bf53fff4..737ec225 100644
--- a/visualdev/Tnb.VisualDev/Tnb.VisualDev.csproj
+++ b/visualdev/Tnb.VisualDev/Tnb.VisualDev.csproj
@@ -1,5 +1,4 @@
-
net6.0