annotate UnitTests/Linq/Model/Person.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
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.Data.Sql.SqlProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using BLToolkit.Mapping;
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 Data.Linq.Model
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 public class Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 public Person()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public Person(int id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 ID = id;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 public Person(int id, string firstName)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 ID = id;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 FirstName = firstName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 [Identity, PrimaryKey]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 //[SequenceName("PostgreSQL", "Seq")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [SequenceName("Firebird", "PersonID")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 [MapField("PersonID")] public int ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public string FirstName { get; set; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 public string LastName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 [Nullable] public string MiddleName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 public Gender Gender;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 [MapIgnore] public string Name { get { return FirstName + " " + LastName; }}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 [Association(ThisKey = "ID", OtherKey = "PersonID", CanBeNull = true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public Patient Patient;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 public override bool Equals(object obj)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 return Equals(obj as Person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 public bool Equals(Person other)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 if (ReferenceEquals(null, other)) return false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 if (ReferenceEquals(this, other)) return true;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 return
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 other.ID == ID &&
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 Equals(other.LastName, LastName) &&
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 Equals(other.MiddleName, MiddleName) &&
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 other.Gender == Gender &&
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 Equals(other.FirstName, FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 public override int GetHashCode()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 unchecked
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 var result = ID;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 result = (result * 397) ^ (LastName != null ? LastName.GetHashCode() : 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 result = (result * 397) ^ (MiddleName != null ? MiddleName.GetHashCode() : 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 result = (result * 397) ^ Gender.GetHashCode();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 result = (result * 397) ^ (FirstName != null ? FirstName.GetHashCode() : 0);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 return result;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 }