annotate UnitTests/Linq/UserTests/LetTest.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using System.Linq.Expressions;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 namespace Data.Linq.UserTests
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public class LetTest : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 class Table1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public int Field3;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public int? Field5;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 [Association(ThisKey="Field5", OtherKey="Field3", CanBeNull=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public Table1 Ref1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [Association(ThisKey="Field3", OtherKey="Field3", CanBeNull=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public List<Table3> Ref2 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 class Table2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public int? Field6;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 [Association(ThisKey = "Field6", OtherKey = "Field6", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 public Table3 Ref3 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 class Table3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public int? Field6;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public int Field3;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public int Field4;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 [Association(ThisKey="Field3", OtherKey="Field3", CanBeNull=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 public Table1 Ref4 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 [Association(ThisKey="Field4", OtherKey="Field4", CanBeNull=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 public Table7 Ref5 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [Association(ThisKey = "Field6", OtherKey = "Field6", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public List<Table2> Ref9 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 class Table7
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public int Field4;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public string Field8;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public void LetTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 using (var repository = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 from t1 in repository.GetTable<Table2>()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 from t2 in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 from t5 in t1.Ref3.Ref4.Ref1.Ref2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 let t3 = t1.Ref3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 where t3.Ref5.Field8 == t5.Ref5.Field8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 from t4 in t5.Ref9
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 select t4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 select t1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 var linqResult = q.ToString();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 public void LetTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 using (var repository = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 from t1 in repository.GetTable<Table2>()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 from t2 in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 from t5 in t1.Ref3.Ref4.Ref1.Ref2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 let t3 = t1.Ref3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 where t3.Ref5 == t5.Ref5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 from t4 in t5.Ref9
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 select t4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 select t1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 var linqResult = q.ToString();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 }