main
1using gorilla.utility;
2
3namespace solidware.financials.service.orm
4{
5 public class DB40UnitOfWorkFactory : UnitOfWorkFactory
6 {
7 readonly ConnectionFactory factory;
8 readonly Context context;
9 Key<Connection> key = new TypedKey<Connection>();
10
11 public DB40UnitOfWorkFactory(ConnectionFactory factory, Context context)
12 {
13 this.factory = factory;
14 this.context = context;
15 }
16
17 public UnitOfWork create()
18 {
19 if( context.contains(key)) return new EmptyUnitOfWork();
20
21 var connection = factory.Open();
22 context.add(key, connection);
23 return new DB4OUnitOfWork(connection, context);
24 }
25 }
26}