public IDataAdapterCommand <int> CreateUpdateMetadataCommand(IObjectId objectId, InstanceMetadata data) { IDbCommand insertCommand = CreateCommand( ); var instance = objectId; insertCommand = CreateCommand( ); insertCommand.CommandText = string.Format(@" UPDATE {0} SET {2}=@{2}, {3}=@{3} WHERE {1}=@{1} IF @@ROWCOUNT = 0 INSERT INTO {0} ({2}, {3}) VALUES (@{2}, @{3}) ", StorageDbSchemaProvider.MetadataTable.TableName, StorageDbSchemaProvider.MetadataTable.SopInstanceColumn, StorageDbSchemaProvider.MetadataTable.MetadataColumn, StorageDbSchemaProvider.MetadataTable.OwnerColumn); var sopParam = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.SopInstanceColumn, instance.SOPInstanceUID); var metaParam = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.MetadataColumn, data.ToJson( )); var ownerParam = CreateParameter("@" + StorageDbSchemaProvider.MetadataTable.OwnerColumn, data.Owner); insertCommand.Parameters.Add(sopParam); insertCommand.Parameters.Add(metaParam); insertCommand.Parameters.Add(ownerParam); SetConnectionIfNull(insertCommand); return(new ExecuteNonQueryCommand(insertCommand)); }