public void Delete <T>(T instance) { var tableName = _conventionReader.GetTableName <T>(); var primaryKeyColumnName = _conventionReader.GetPrimaryKeyColumnName <T>(); var primaryKeyValue = _conventionReader.GetPrimaryKeyValue(instance); var constraintExpression = QueryExpression.Create(new EqualsExpression(primaryKeyColumnName, primaryKeyValue)); var command = _sqlGenerator.CreateDeleteCommand(tableName, constraintExpression); _dbCommandExecutor.ExecuteNonQuery(command, ConnectionString); }