示例#1
0
        public void Can_Write_Delete_Missing_Where()
        {
            var query = QueryExpression.Delete(QueryExpression.Table("TestTable"));
            var sql   = TestHelpers.ConvertToSql(query);

            Assert.AreEqual("DELETE FROM [TestTable];", sql);
        }
示例#2
0
        public void Can_Write_Delete_With_Where()
        {
            var query = QueryExpression.Delete(
                QueryExpression.Table("TestTable"),
                QueryExpression.AreEqual(QueryExpression.Column("Id"), QueryExpression.Column("Id"))
                );
            var sql = TestHelpers.ConvertToSql(query);

            Assert.AreEqual("DELETE FROM [TestTable] WHERE [Id] = [Id];", sql);
        }
示例#3
0
        public override ExecutableQueryExpression BuildQuery()
        {
            var where = _whereBuilder.Build();

            if (where?.RequiresJoins == true)
            {
                throw new InvalidOperationException("Expressions that require joins aren't valid for DELETE statements.");
            }

            return(QueryExpression.Delete(
                       QueryExpression.Table(_tableName), where?.QueryExpression
                       ));
        }
 public virtual async Task Crud_Delete()
 {
     using (var tempTable = await DataTestHelpers.CreateAutoIncrementTable(DataProvider))
         using (var queryResult = await DataProvider.ExecuteReaderAsync(
                    QueryExpression.Transaction(
                        QueryExpression.Insert(
                            tempTable.TableName,
                            new[] { "Data" },
                            new object[] { 1 }
                            ),
                        QueryExpression.Delete(
                            QueryExpression.Table(tempTable.TableName),
                            QueryExpression.Compare(QueryExpression.Column("Id"), ComparisonOperator.AreEqual, QueryExpression.Value(1))
                            ),
                        QueryExpression.Select(
                            new[] { QueryExpression.Column("Data") },
                            from: QueryExpression.Table(tempTable.TableName),
                            where : QueryExpression.Compare(QueryExpression.Column("Id"), ComparisonOperator.AreEqual, QueryExpression.Value(1))
                            )
                        )))
         {
             Assert.IsFalse(queryResult.HasRows);
         }
 }