Skip to content

DataAccess.DeleteSql

Igor Tkachev edited this page May 22, 2016 · 1 revision

Home / DataAccess

DeleteSql.cs

using System;

using NUnit.Framework;

using BLToolkit.Data;
using BLToolkit.DataAccess;

namespace HowTo.DataAccess
{
    [TestFixture]
    public class DeleteSql
    {
        private int Insert()
        {
            using (DbManager db = new DbManager())
            {
                return db
                    .SetCommand(@"
                        INSERT INTO Person (
                             FirstName,  LastName,  Gender
                        ) VALUES (
                            @FirstName, @LastName, @Gender
                        )
                        SELECT Cast(SCOPE_IDENTITY() as int)",
                        db.Parameter("@FirstName", "Crazy"),
                        db.Parameter("@LastName",  "Frog"),
                        db.Parameter("@Gender",    "U"))
                    .ExecuteScalar<int>();
            }
        }

        [Test]
        public void Test1()
        {
            int id = Insert();

            SqlQuery<Person> query = new SqlQuery<Person>();

            query.DeleteByKey(id);
        }

        [Test]
        public void Test2()
        {
            int id = Insert();

            using (DbManager db = new DbManager())
            {
                SqlQuery<Person> query = new SqlQuery<Person>();

                Person person = query.SelectByKey(db, id);

                query.Delete(db, person);
            }
        }
    }
}

Both DataAccessor.DeleteByKeySql and DataAccessor.DeleteSql methods generate and execute the following SQL statement:

DELETE FROM
    [Person]
WHERE
    [PersonID] = @PersonID

Person.cs

using System;

using BLToolkit.DataAccess;
using BLToolkit.Mapping;

namespace HowTo.DataAccess
{
    public class Person
    {
        [MapField("PersonID"), PrimaryKey, NonUpdatable]
        public int    ID;

        public string LastName;
        public string FirstName;
        public string MiddleName;
        public Gender Gender;
    }
}

Gender.cs

using System;

using BLToolkit.Mapping;

namespace HowTo.DataAccess
{
    public enum Gender
    {
        [MapValue("F")] Female,
        [MapValue("M")] Male,
        [MapValue("U")] Unknown,
        [MapValue("O")] Other
    }
}

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add
            name             = "DemoConnection"
            connectionString = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"
            providerName     = "System.Data.SqlClient" />
    </connectionStrings>
</configuration>

CreateSql

Clone this wiki locally