/// <summary> /// 如果对象属性改变,调用此方法,更新到文件(注意:主键属性不要更改) /// </summary> /// <param name="item"></param> public void Update(T item) { if (item == null) { return; } var key = _propertyInfo.GetValue(item); lock (_dataList) { if (_checkRepeatPrimaryKey) { var _whereQuery = LinqHelper.InvokeWhereEquals(_dataList.Where(m => m != null && m.Data.Equals(item) == false).Select(m => m.Data).AsQueryable <T>(), _propertyInfo.Name, key); if (LinqHelper.InvokeAny(_whereQuery)) { throw new Exception($"{key} exist"); } } _storageQueue.Update(item); } }