public override RDFStore RemoveQuadruplesByPredicate(RDFResource predicateResource)
{
if (predicateResource != null) {
//Create command
var command = new SqlCommand("DELETE FROM [dbo].[Quadruples] WHERE [PredicateID] = @PREDID", this.Connection);
command.Parameters.Add(new SqlParameter("PREDID", SqlDbType.BigInt));
//Valorize parameters
command.Parameters["PREDID"].Value = predicateResource.PatternMemberID;
try {
//Open connection
this.Connection.Open();
//Prepare command
command.Prepare();
//Open transaction
command.Transaction = this.Connection.BeginTransaction();
//Execute command
command.ExecuteNonQuery();
//Close transaction
command.Transaction.Commit();
//Close connection
this.Connection.Close();
}
catch (Exception ex) {
//Rollback transaction
command.Transaction.Rollback();
//Close connection
this.Connection.Close();
//Propagate exception
throw new RDFStoreException("Cannot delete data from SQL Server store because: " + ex.Message, ex);
}
}
return this;
}