Mercurial > pub > bltoolkit
view Source/Mapping/RelationAttribute.cs @ 9:1e85f66cf767 default tip
update bltoolkit
author | nickolay |
---|---|
date | Thu, 05 Apr 2018 20:53:26 +0300 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
using System; using System.Collections.Generic; namespace BLToolkit.Mapping { [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] public sealed class RelationAttribute : Attribute { #region Constructors public RelationAttribute() { } public RelationAttribute(Type destination) { _destination = destination; } public RelationAttribute(string slaveIndex) { SlaveIndex1 = slaveIndex; } public RelationAttribute(string slaveIndex, string masterIndex) : this(slaveIndex) { MasterIndex1 = masterIndex; } public RelationAttribute(Type destination, string slaveIndex) : this(destination) { SlaveIndex1 = slaveIndex; } public RelationAttribute(Type destination, string slaveIndex, string masterIndex) : this(destination) { SlaveIndex1 = slaveIndex; MasterIndex1 = masterIndex; } #endregion private Type _destination; public Type Destination { get { return _destination; } } private string _masterIndex1; public string MasterIndex1 { get { return _masterIndex1; } set { _masterIndex1 = value; } } private string _masterIndex2; public string MasterIndex2 { get { return _masterIndex2; } set { _masterIndex2 = value; } } private string _masterIndex3; public string MasterIndex3 { get { return _masterIndex3; } set { _masterIndex3 = value; } } private string _slaveIndex1; public string SlaveIndex1 { get { return _slaveIndex1; } set { _slaveIndex1 = value; } } private string _slaveIndex2; public string SlaveIndex2 { get { return _slaveIndex2; } set { _slaveIndex2 = value; } } private string _slaveIndex3; public string SlaveIndex3 { get { return _slaveIndex3; } set { _slaveIndex3 = value; } } public MapIndex MasterIndex { get { List<String> index = new List<string>(); AddIndex(index, MasterIndex1); AddIndex(index, MasterIndex2); AddIndex(index, MasterIndex3); if (index.Count == 0) return null; return new MapIndex(index.ToArray()); } } public MapIndex SlaveIndex { get { List<String> index = new List<string>(); AddIndex(index, SlaveIndex1); AddIndex(index, SlaveIndex2); AddIndex(index, SlaveIndex3); if (index.Count == 0) return null; return new MapIndex(index.ToArray()); } } private void AddIndex(List<string> index, string field) { if (!string.IsNullOrEmpty(field)) index.Add(field); } } }