-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathInMemoryDatabase.cs
40 lines (33 loc) · 1.29 KB
/
InMemoryDatabase.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
namespace Dashing {
using System.Data;
using Dashing.Configuration;
using Dashing.Engine;
using Dashing.Engine.InMemory;
public class InMemoryDatabase : IDatabase {
protected readonly IConfiguration configuration;
protected InMemoryEngine engine;
public bool CompleteFailsSilentlyIfRejected { get; set; }
public InMemoryDatabase(IConfiguration configuration) {
this.configuration = configuration;
this.engine = new InMemoryEngine(configuration);
}
public virtual ISession BeginSession(IDbConnection connection = null, IDbTransaction transaction = null) {
return new Session(this.engine,
new System.Lazy<IDbConnection>(() => new InMemoryDbConnection()),
null,
false,
false,
true,
this.CompleteFailsSilentlyIfRejected);
}
public virtual ISession BeginTransactionLessSession(IDbConnection connection = null) {
return new Session(this.engine,
new System.Lazy<IDbConnection>(() => new InMemoryDbConnection()),
null,
false,
false,
true,
this.CompleteFailsSilentlyIfRejected);
}
}
}