annotate UnitTests/Linq/UserTests/SelectManyUpdateTest.cs @ 5:f7d63a092920

Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author cin
date Tue, 10 Mar 2015 16:02:11 +0300
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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 namespace Data.Linq.UserTests
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public class SelectManyUpdateTest : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public new class Child
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 [Identity, PrimaryKey(1)] public int ParentID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 [Nullable] public int? ChildID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 [AssociationAttribute(ThisKey = "ParentID", OtherKey = "ChildID", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public List<Child> Children { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public new class Parent
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [Identity, PrimaryKey(1)] public int ParentID { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 [Nullable] public int? Value1 { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 [AssociationAttribute(ThisKey = "ParentID", OtherKey = "Value1", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 public List<Parent> Values { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 [AssociationAttribute(ThisKey = "ParentID", OtherKey = "ParentID", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 public List<Child> Children { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public void Test1([DataContexts(ProviderName.Access, ProviderName.Informix, ProviderName.MySql)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 var harnessIds = new int[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 db.GetTable<Parent>()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 .Where (x => harnessIds.Contains(x.ParentID))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 .SelectMany(x => x.Values)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 .Set (x => x.Value1, (long?)null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public void Test2([DataContexts(ProviderName.Access, ProviderName.Informix, ProviderName.MySql)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 var harnessIds = new int[2];
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 db.GetTable<Parent>()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 .Where (x => harnessIds.Contains(x.ParentID))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 .SelectMany(x => x.Children)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 .SelectMany(x => x.Children)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 .Set (x => x.ChildID, 10)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 .Update();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }