0
|
1 using System;
|
|
2 using System.Collections.Generic;
|
|
3 using System.Text;
|
|
4
|
|
5 namespace BLToolkit.Data.Sql
|
|
6 {
|
|
7 using Reflection.Extension;
|
|
8
|
|
9 public class JoinOn : IQueryElement, ICloneableElement
|
|
10 {
|
|
11 public JoinOn()
|
|
12 {
|
|
13 }
|
|
14
|
|
15 public JoinOn(string field, string otherField)
|
|
16 {
|
|
17 _field = field;
|
|
18 _otherField = otherField;
|
|
19 }
|
|
20
|
|
21 public JoinOn(string field, string otherField, string expression)
|
|
22 {
|
|
23 _field = field;
|
|
24 _otherField = otherField;
|
|
25 _expression = expression;
|
|
26 }
|
|
27
|
|
28 public JoinOn(AttributeExtension ext)
|
|
29 {
|
|
30 _field = (string)ext["Field"];
|
|
31 _otherField = (string)ext["OtherField"];
|
|
32 _expression = (string)ext["Expression"];
|
|
33 }
|
|
34
|
|
35 private string _field;
|
|
36 public string Field { get { return _field; } set { _field = value; } }
|
|
37
|
|
38 private string _otherField;
|
|
39 public string OtherField { get { return _otherField; } set { _otherField = value; } }
|
|
40
|
|
41 private string _expression;
|
|
42 public string Expression { get { return _expression; } set { _expression = value; } }
|
|
43
|
|
44 #region IQueryElement Members
|
|
45
|
|
46 public QueryElementType ElementType { get { return QueryElementType.JoinOn; } }
|
|
47
|
|
48 StringBuilder IQueryElement.ToString(StringBuilder sb, Dictionary<IQueryElement,IQueryElement> dic)
|
|
49 {
|
|
50 return sb;
|
|
51 }
|
|
52
|
|
53 #endregion
|
|
54
|
|
55 #region ICloneableElement Members
|
|
56
|
|
57 public ICloneableElement Clone(Dictionary<ICloneableElement, ICloneableElement> objectTree, Predicate<ICloneableElement> doClone)
|
|
58 {
|
|
59 if (!doClone(this))
|
|
60 return this;
|
|
61
|
|
62 ICloneableElement clone;
|
|
63
|
|
64 if (!objectTree.TryGetValue(this, out clone))
|
|
65 objectTree.Add(this, clone = new JoinOn(_field, _otherField, _expression));
|
|
66
|
|
67 return clone;
|
|
68 }
|
|
69
|
|
70 #endregion
|
|
71 }
|
|
72 }
|