ExecuteForEach

BLToolkit.NET

Business Logic Toolkit for .NET www.bltoolkit.net
 

The ExecuteForEach method executes an SQL statement for every item in the provided collection and returns the number of rows affected.

ExecuteForEach.cs
using System;
using System.Collections.Generic;

using NUnit.Framework;

using BLToolkit.Data;

namespace HowTo.Data
{
    using DataAccess;

    [TestFixture]
    public class ExecuteForEach
    {
        [Test]
        public void Test()
        {
            List<Person> list = new List<Person>
            {
                new Person { FirstName = "John", LastName = "Smith", Gender = Gender.Male   },
                new Person { FirstName = "Jane", LastName = "Smith", Gender = Gender.Female }
            };

            using (DbManager db = new DbManager())
            {
                db.BeginTransaction();

                // Execute.
                //
                db
                    .SetSpCommand("Person_Insert")
                    .ExecuteForEach<Person>(list);

                // Check the result.
                //
                list = db
                    .SetCommand(
                        "SELECT * FROM Person WHERE LastName = @lastName",
                        db.Parameter("@lastName", "Smith"))
                    .ExecuteList<Person>();

                Assert.GreaterOrEqual(2, list.Count);

                // Cleanup.
                //
                db
                    .SetCommand(
                        "DELETE FROM Person WHERE LastName = @lastName",
                        db.Parameter("@lastName", "Smith"))
                    .ExecuteNonQuery();

                db.CommitTransaction();
            }
        }
    }
}
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>
    <appSettings>
        <add
            key   = "ConnectionString"
            value = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
    </appSettings>
</configuration>
Create.sql script
 
© 2010 www.bltoolkit.net
[email protected]