Business Logic Toolkit for .NET
www.bltoolkit.net
Welcome Guest, you are in: Login
|  Home   |  Download   |  Documentation   |  Discussions   |  Issues   |  License   |
RSS RSS

Navigation




Search the wiki
»

PoweredBy
Transaction.cs

using System;

using NUnit.Framework;

using BLToolkit.Data; using BLToolkit.DataAccess; using BLToolkit.Mapping;

namespace HowTo.DataAccess { [TestFixture] public class Transaction { public abstract class TestAccessor : DataAccessor<Person> { public abstract int Insert(Person person); public abstract void Delete(int @PersonID);

public abstract Person SelectByKey(int id); public abstract Person SelectByKey(DbManager db, int id); }

// DataAccessor takes DbManager as a parameter. // [Test] public void Test1() { using (DbManager db = new DbManager()) { TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>(db);

ta.BeginTransaction();

int id = ta.Insert(new Person { FirstName = "John", LastName = "Smith" }); Assert.AreNotEqual(0, id);

Person person = ta.SelectByKey(id); Assert.IsNotNull(person);

ta.Delete(id);

ta.CommitTransaction(); } }

// DataAccessor method takes DbManager as a parameter. // [Test] public void Test2() { using (DbManager db = new DbManager()) { db.BeginTransaction();

TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>();

int id = ta.Insert(new Person { FirstName = "John", LastName = "Smith" }); Assert.AreNotEqual(0, id);

Person person = ta.SelectByKey(db, id); Assert.IsNotNull(person);

ta.Delete(id);

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