| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | using DBHelper;using Microsoft.EntityFrameworkCore;using System;using System.ComponentModel;using WCS.Core;using WCS.Entity;namespace WCS.Service{    [Description("数据清理")]    internal class DataClearHandler : LogicHandler    {        public override void Start()        {        }        private DateTime last = DateTime.MinValue;        public override void Update(double milliseconds)        {            if ((DateTime.Now - last).TotalMilliseconds < 1000 * 60 * 60 * 24)                return;            last = DateTime.Now;            DB.Do(db =>            {                db.Default.Database.ExecuteSqlRaw("delete WCS_EXCEPTION where datediff(dd,UPDATETIME,getdate())>7");                var ps = db.Default.GetType().GetProperties();                foreach (var p in ps)                {                    if (!p.PropertyType.IsGenericType)                        continue;                    var tType = p.PropertyType.GenericTypeArguments[0];                    if (!tType.IsSubclassOf(typeof(WCS_PROTOCOLDATA)))                        continue;                    var sSql = $"Delete {tType.Name} where datediff(dd,Frame,getdate())>7";                    db.Default.Database.ExecuteSqlRaw(sSql);                    DBHelper.DbLog.DB_CLEAN(sSql);                }            });        }    }}
 |