annotate UnitTests/Linq/Common.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +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;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Data.Linq;
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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 using Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public class Common : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public void AsQueryable()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 from p in Parent from ch in Child select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 from p in db.Parent from ch in db.Child.AsQueryable() select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public void Convert()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 from p in Parent from ch in Child select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 from p in db.Parent from ch in ((IEnumerable<Child>)db.Child).AsQueryable() select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 public void NewCondition()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 from p in Parent select new { Value = p.Value1 != null ? p.Value1 : 100 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 from p in db.Parent select new { Value = p.Value1 != null ? p.Value1 : 100 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 public void NewCoalesce()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 from p in Parent select new { Value = p.Value1 ?? 100 },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 from p in db.Parent select new { Value = p.Value1 ?? 100 }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public void CoalesceNew()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 Child ch = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 from p in Parent select ch ?? new Child { ParentID = p.ParentID },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 from p in db.Parent select ch ?? new Child { ParentID = p.ParentID }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public void ScalarCondition()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 from p in Parent select p.Value1 != null ? p.Value1 : 100,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 from p in db.Parent select p.Value1 != null ? p.Value1 : 100));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 public void ScalarCoalesce()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 from p in Parent select p.Value1 ?? 100,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 from p in db.Parent select p.Value1 ?? 100));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 public void ExprCoalesce()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 from p in Parent select (p.Value1 ?? 100) + 50,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 from p in db.Parent select (p.Value1 ?? 100) + 50));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 static int GetDefault1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 return 100;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 public void ClientCoalesce1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 from p in Parent select p.Value1 ?? GetDefault1(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 from p in db.Parent select p.Value1 ?? GetDefault1()));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 static int GetDefault2(int n)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 return n;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 public void ClientCoalesce2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 from p in Parent select p.Value1 ?? GetDefault2(p.ParentID),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 from p in db.Parent select p.Value1 ?? GetDefault2(p.ParentID)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 public void CoalesceLike([DataContexts] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 from p in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 where
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 (p.FirstName == null ? (bool?)null : (bool?)p.FirstName.StartsWith("Jo")) == null ?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 false :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 (p.FirstName == null ? (bool?)null : p.FirstName.StartsWith("Jo")).Value
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 from p in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 where
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 (p.FirstName == null ? (bool?)null : (bool?)p.FirstName.StartsWith("Jo")) == null ?
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 false :
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 (p.FirstName == null ? (bool?)null : p.FirstName.StartsWith("Jo")).Value
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 select p);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 public void PreferServerFunc1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 from p in Person select p.FirstName.Length,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 from p in db.Person select p.FirstName.Length));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 public void PreferServerFunc2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 from p in Person select p.FirstName.Length + "".Length,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 from p in db.Person select p.FirstName.Length + "".Length));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 class Test
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147 class Entity
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 public Test TestField = null;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152 public Test TestClosure(ITestDataContext db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 return db.Person.Select(_ => new Entity { TestField = this }).First().TestField;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159 public void ClosureTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 ForEachProvider(db => Assert.AreNotEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 new Test().TestClosure(db),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 new Test().TestClosure(db)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 public void ExecuteTest([IncludeDataContexts("Northwind")] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 using (var db = new NorthwindDB())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 var emp = db.Employee;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 Expression<Func<int>> m = () => emp.Count();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 var exp = Expression.Call(((MethodCallExpression)m.Body).Method, emp.Expression);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 var results = (int)((IQueryable)emp).Provider.Execute(exp);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 class MyClass
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 public override bool Equals(object obj)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 return ((MyClass)obj).ID == ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 public override int GetHashCode()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192 return ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 public void NewObjectTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 select new { ID = new MyClass { ID = p.ParentID } } into p1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202 where p1.ID.ID == 1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 select p1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 select new { ID = new MyClass { ID = p.ParentID } } into p1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 where p1.ID.ID == 1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 select p1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 public void NewObjectTest2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 select new { ID = new MyClass { ID = p.ParentID } } into p
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 join j in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 from c in Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 select new { ID = new MyClass { ID = c.ParentID } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 on p.ID.ID equals j.ID.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 where p.ID.ID == 1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 select new { ID = new MyClass { ID = p.ParentID } } into p
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 join j in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 from c in db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 select new { ID = new MyClass { ID = c.ParentID } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 on p.ID.ID equals j.ID.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 where p.ID.ID == 1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232 public Table<Person> People2(DbManager db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 return db.GetTable<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 public void TableAsMethod()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 from d in db.Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 from p in People2(db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 q.ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 from d in db.Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 from p in People2(db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 q.ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 public void TableAsExtensionMethod()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 from d in db.Patient
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 from p in db.People()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 q.ToList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 public void Condition1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 from p in Person select new { Name = !string.IsNullOrEmpty(p.FirstName) ? p.FirstName : !string.IsNullOrEmpty(p.MiddleName) ? p.MiddleName : p.LastName },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 from p in db.Person select new { Name = !string.IsNullOrEmpty(p.FirstName) ? p.FirstName : !string.IsNullOrEmpty(p.MiddleName) ? p.MiddleName : p.LastName }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 public void Condition2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 from p in Person select new { Name = !p.FirstName.IsNullOrEmpty() ? p.FirstName : !p.MiddleName.IsNullOrEmpty() ? p.MiddleName : p.LastName },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 from p in db.Person select new { Name = !p.FirstName.IsNullOrEmpty() ? p.FirstName : !p.MiddleName.IsNullOrEmpty() ? p.MiddleName : p.LastName }));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 enum PersonID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 Person1 = 1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 Person2 = 2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 public void ConvertEnum1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 from p in Person where p.ID == (int)PersonID.Person1 select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 from p in db.Person where p.ID == (int)PersonID.Person1 select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 public void ConvertEnum2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 var id = PersonID.Person1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 from p in Person where p.ID == (int)id select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 from p in db.Person where p.ID == (int)id select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313 public void GroupByUnion1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 from t in (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 from c in Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 where c.ParentID < 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 select new { c.ParentID, ID = c.ChildID })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 .Concat(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 from g in GrandChild
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 where g.ParentID >= 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 select new { ParentID = g.ParentID ?? 0, ID = g.GrandChildID ?? 0 })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 select tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 ,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 from t in (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 from c in db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 where c.ParentID < 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 select new { c.ParentID, ID = c.ChildID })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 .Concat(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334 from g in db.GrandChild
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 where g.ParentID >= 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 select new { ParentID = g.ParentID ?? 0, ID = g.GrandChildID ?? 0 })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 select tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 ));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 public void GroupByUnion2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 var qe1 =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 from t in (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 from c in Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 where c.ParentID < 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 select new { c.ParentID, ID = c.ChildID })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354 .Concat(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 from g in GrandChild
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 where g.ParentID >= 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 select new { ParentID = g.ParentID ?? 0, ID = g.GrandChildID ?? 0 })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 select tt;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 var qe2 =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 join tt in qe1 on p.ParentID equals tt.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 from tt in gr.DefaultIfEmpty()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 select new { p.ParentID };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 var qr1 =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 from t in (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 from c in db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 where c.ParentID < 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 select new { c.ParentID, ID = c.ChildID })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374 .Concat(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 from g in db.GrandChild
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 where g.ParentID >= 4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 select new { ParentID = g.ParentID ?? 0, ID = g.GrandChildID ?? 0 })
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 select tt;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 var qr2 =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 join tt in qr1 on p.ParentID equals tt.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 from tt in gr.DefaultIfEmpty()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 select new { p.ParentID };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 AreEqual(qe2, qr2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394 public void GroupByLeftJoin1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 ForEachProvider(db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 from p in Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 join tt in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 from t in Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ChildID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 select tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404 on p.ParentID equals tt.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 from tt in gr.DefaultIfEmpty()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 select p.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 from p in db.Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 join tt in
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 from t in db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 group t by t.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 select new { ParentID = gr.Key, Sum = gr.Sum(i => i.ChildID) } into tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 where tt.Sum != 0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 select tt
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414 on p.ParentID equals tt.ParentID into gr
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 from tt in gr.DefaultIfEmpty()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 select p.ParentID));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 void ProcessItem(ITestDataContext db, int id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 var hashQuery1 = Parent.Where(t => t.ParentID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 var groups1 = Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424 .Where(p => hashQuery1.Any(e => e.ParentID == p.ParentID))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 .GroupBy(e => e.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 .Select(g => g.Key);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 var hashQuery2 = db.Parent.Where(t => t.ParentID == id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 var groups2 = db.Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 .Where(p => hashQuery2.Any(e => e.ParentID == p.ParentID))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 .GroupBy(e => e.ParentID)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 .Select(g => g.Key);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 AreEqual(groups1, groups2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 public void ParameterTest1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 ProcessItem(db, 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444 ProcessItem(db, 2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 static class Extender
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 public static Table<Person> People(this DbManager db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 return db.GetTable<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 public static bool IsNullOrEmpty(this string value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458 return string.IsNullOrEmpty(value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 }