CommandBehavior

BLToolkit.NET

Business Logic Toolkit for .NET www.bltoolkit.net
 

The CommandBehavior attribute provides a description of the results of the query and its effect on the database.

CommandBehavior.cs
using System.Data;

using NUnit.Framework;

using BLToolkit.Data;
using BLToolkit.DataAccess;

namespace HowTo.DataAccess
{
    [TestFixture]
    public class CommandBehaviorDemo
    {
        public abstract class TestAccessor : DataAccessor
        {
            [SprocName("Person_SelectAll"), CommandBehavior(CommandBehavior.SchemaOnly)]
            public abstract IDataReader SelectAllIDataReaderSchemaOnly(DbManager db);
        }

        [Test]
        public void Test()
        {
            TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>();

            using (DbManager   db = ta.GetDbManager())
            using (IDataReader dr = ta.SelectAllIDataReaderSchemaOnly(db))
            {
                DataTable table = dr.GetSchemaTable();

                Assert.AreEqual("PersonID",  table.Rows[0]["ColumnName"]);
                Assert.AreEqual(typeof(int), table.Rows[0]["DataType"]);
            }
        }
    }
}
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]