Skip to content

DataAccess.CommandBehavior

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

Home / DataAccess

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>
    <connectionStrings>
        <add
            name             = "DemoConnection"
            connectionString = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"
            providerName     = "System.Data.SqlClient" />
    </connectionStrings>
</configuration>

CreateSql

Clone this wiki locally