private static void Synchronize <TSQL, TSP> ( TSQL sqlItem, TSP splItem, List <StorageItem> _spDscrpt, Dictionary <string, SQLStorageItem> _sqlDscrpt, ProgressChangedEventHandler progressChanged, Microsoft.SharePoint.Linq.DataContext dataContext, PropertyChangedEventHandler propertyChanged ) where TSQL : class, SharePoint.Client.Link2SQL.IItem, INotifyPropertyChanged, new() { sqlItem.PropertyChanged += propertyChanged; foreach (StorageItem _si in _spDscrpt.Where <StorageItem>(x => !x.IsReverseLookup())) { if (_sqlDscrpt.ContainsKey(_si.PropertyName)) { _si.GetValueFromEntity(splItem, x => _sqlDscrpt[_si.PropertyName].Assign(x, sqlItem), dataContext); } } sqlItem.PropertyChanged -= propertyChanged; }