从山证v2.3.0拷贝

This commit is contained in:
吴方海
2024-05-09 14:06:26 +08:00
parent 566ff33259
commit f9d8a256a6
4471 changed files with 1203456 additions and 9 deletions
@@ -0,0 +1,62 @@
namespace YLErp.Modules.DataCacheModule
{
public static partial class DataCacheManager
{
class VarietyDataSource : GenericeCachedDataSource<Variety>, Abstract.IDataSourceKey2<Variety>
{
public override string TableName => nameof(Variety);
readonly Dictionary<string, Variety> _dicEx;
private VarietyDataSource()
{
_dicEx = new Dictionary<string, Variety>(StringComparer.OrdinalIgnoreCase);
}
public Variety GetData(string varietyCode)
{
if (string.IsNullOrWhiteSpace(varietyCode))
{
return null;
}
lock (this)
{
if (_dicEx.TryGetValue(varietyCode, out var variety))
{
var clone = variety.Clone();
return clone;
}
using (var db = DbContextFactory.GetYLDbContext())
{
var va = db.variety.AsNoTracking().FirstOrDefault(n => n.VarietyCode == varietyCode);
if (va != null)
{
_dic[va.id] = va;
AfterUpdateHandle(va);
}
return va?.Clone();
}
}
}
private void AfterUpdateHandle(Variety data)
{
if (string.IsNullOrWhiteSpace(data.VarietyCode))
{
return;
}
_dicEx[data.VarietyCode] = data;
}
public static readonly VarietyDataSource Default;
static VarietyDataSource()
{
Default = new VarietyDataSource();
}
}
}
}