annotate HowTo/DataAccess/ActualType.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +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.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace HowTo.DataAccess
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public class ActualType
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public interface IName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 string Name { get; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public class NameBase : IName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 private string _name;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public string Name { get { return _name; } set { _name = value; } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public class Name1 : NameBase {}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 public class Name2 : NameBase {}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 [/*[a]*/ActualType/*[/a]*/(typeof(IName), typeof(/*[a]*/Name1/*[/a]*/))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public abstract class TestAccessor : DataAccessor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 [SqlQuery("SELECT 'John' as Name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public abstract IName GetName1();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 [SqlQuery("SELECT 'John' as Name"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 public abstract IName GetName2();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 [SqlQuery("SELECT 'John' as Name")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 public abstract IList<IName> GetName1List();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 [SqlQuery("SELECT 'John' as Name"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public abstract IList<IName> GetName2List();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 public abstract IDictionary<int, IName> GetName1Dictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 [SqlQuery("SELECT 1 as ID, 'John' as Name"), Index("@ID"), /*[a]*/ObjectType/*[/a]*/(typeof(/*[a]*/Name2/*[/a]*/))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 public abstract IDictionary<int, IName> GetName2Dictionary();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public void Test()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 TestAccessor ta = DataAccessor.CreateInstance<TestAccessor>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 Assert.IsTrue(ta.GetName1() is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 Assert.IsTrue(ta.GetName2() is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 Assert.IsTrue(ta.GetName1List()[0] is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 Assert.IsTrue(ta.GetName2List()[0] is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 Assert.IsTrue(ta.GetName1Dictionary()[1] is Name1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 Assert.IsTrue(ta.GetName2Dictionary()[1] is Name2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 }