/// <summary> /// Inserts the or update package. /// </summary> /// <param name="package">The package.</param> public void InsertOrUpdatePackage(Package package) { lock (this.dataContextLock) { this.CreateDBIfNotExist(); using (var dataContext = new DBContext()) { var queryPackage = from item in dataContext.PackageTable where item.PackageId == package.PackageId select item; if (queryPackage.Any()) { Package databasePackage = queryPackage.First(); databasePackage.CopyFrom(package); } else { dataContext.PackageTable.InsertOnSubmit(package); } dataContext.SubmitChanges(); } } }