Mercurial > pub > bltoolkit
comparison UnitTests/Linq/TestDbManager.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.Linq; | |
3 using System.Linq.Expressions; | |
4 using System.Reflection; | |
5 using System.Text; | |
6 | |
7 using BLToolkit.Data; | |
8 using BLToolkit.Data.DataProvider; | |
9 using BLToolkit.Data.Linq; | |
10 using BLToolkit.Data.Sql; | |
11 | |
12 namespace Data.Linq | |
13 { | |
14 using Model; | |
15 | |
16 public class TestDbManager : DbManager, ITestDataContext | |
17 { | |
18 public TestDbManager(string configString) | |
19 : base(configString) | |
20 { | |
21 } | |
22 | |
23 public TestDbManager() | |
24 : base(ProviderName.Access) | |
25 { | |
26 } | |
27 | |
28 public Table<Person> Person { get { return GetTable<Person>(); } } | |
29 public Table<Patient> Patient { get { return GetTable<Patient>(); } } | |
30 public Table<Doctor> Doctor { get { return GetTable<Doctor>(); } } | |
31 public Table<Parent> Parent { get { return GetTable<Parent>(); } } | |
32 public Table<Parent1> Parent1 { get { return GetTable<Parent1>(); } } | |
33 public Table<IParent> Parent2 { get { return GetTable<IParent>(); } } | |
34 public Table<Parent4> Parent4 { get { return GetTable<Parent4>(); } } | |
35 public Table<Parent5> Parent5 { get { return GetTable<Parent5>(); } } | |
36 public Table<ParentInheritanceBase> ParentInheritance { get { return GetTable<ParentInheritanceBase>(); } } | |
37 public Table<ParentInheritanceBase2> ParentInheritance2 { get { return GetTable<ParentInheritanceBase2>(); } } | |
38 public Table<ParentInheritanceBase3> ParentInheritance3 { get { return GetTable<ParentInheritanceBase3>(); } } | |
39 public Table<ParentInheritanceBase4> ParentInheritance4 { get { return GetTable<ParentInheritanceBase4>(); } } | |
40 public Table<ParentInheritance1> ParentInheritance1 { get { return GetTable<ParentInheritance1>(); } } | |
41 public Table<ParentInheritanceValue> ParentInheritanceValue { get { return GetTable<ParentInheritanceValue>(); } } | |
42 public Table<Child> Child { get { return GetTable<Child>(); } } | |
43 public Table<GrandChild> GrandChild { get { return GetTable<GrandChild>(); } } | |
44 public Table<GrandChild1> GrandChild1 { get { return GetTable<GrandChild1>(); } } | |
45 public Table<LinqDataTypes> Types { get { return GetTable<LinqDataTypes>(); } } | |
46 public Table<LinqDataTypes2> Types2 { get { return GetTable<LinqDataTypes2>(); } } | |
47 public Table<TestIdentity> TestIdentity { get { return GetTable<TestIdentity>(); } } | |
48 | |
49 [TableFunction(Name="GetParentByID")] | |
50 public Table<Parent> GetParentByID(int? id) | |
51 { | |
52 return GetTable<Parent>(this, (MethodInfo)MethodBase.GetCurrentMethod(), id); | |
53 } | |
54 | |
55 public string GetSqlText(SqlQuery sql) | |
56 { | |
57 var provider = ((IDataContext)this).CreateSqlProvider(); | |
58 | |
59 //provider.SqlQuery = sql; | |
60 | |
61 sql = provider.Finalize(sql); | |
62 | |
63 var cc = provider.CommandCount(sql); | |
64 var sb = new StringBuilder(); | |
65 | |
66 var commands = new string[cc]; | |
67 | |
68 for (var i = 0; i < cc; i++) | |
69 { | |
70 sb.Length = 0; | |
71 | |
72 provider.BuildSql(i, sql, sb, 0, 0, false); | |
73 commands[i] = sb.ToString(); | |
74 } | |
75 | |
76 return string.Join("\n\n", commands); | |
77 } | |
78 | |
79 #if !MONO | |
80 [MethodExpression("Expression9")] | |
81 static public IQueryable<Parent> GetParent9(ITestDataContext db, Child ch) | |
82 { | |
83 throw new InvalidOperationException(); | |
84 } | |
85 | |
86 [MethodExpression("Expression9")] | |
87 public IQueryable<Parent> GetParent10(Child ch) | |
88 { | |
89 throw new InvalidOperationException(); | |
90 } | |
91 | |
92 static Expression<Func<ITestDataContext,Child,IQueryable<Parent>>> Expression9() | |
93 { | |
94 return (db,ch) => | |
95 from p in db.Parent | |
96 where p.ParentID == (int)Math.Floor(ch.ChildID / 10.0) | |
97 select p; | |
98 } | |
99 #endif | |
100 } | |
101 } |