using System; using System.ComponentModel.DataAnnotations; namespace ChangkeTec.SDMS.Model.Attributes { /// <summary> /// 列来源属于 /// </summary> [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public class ColumnSource : Attribute { /// <summary> /// </summary> /// <param name="sourceType">列来源。ENUM:枚举数据源.TABLE表数据源(外键关系)</param> /// <param name="typeName">来源数据源类型</param> /// <param name="columnNames"> /// sourceType为TABLE时,columName是对应表中的列名 /// columnNames[0]: ValueMember ,colums[1]:DisplayMember public ColumnSource(ColumnSourceType sourceType, Type typeName, string[] columnNames = null, string selector = null) { SourceType = sourceType; TypeName = typeName; ColumnNames = columnNames; Selector = selector; } public ColumnSourceType SourceType { get; } /// <summary>获取或设置属性映射到的列的从零开始的顺序。</summary> /// <returns>列的顺序。</returns> public Type TypeName { get; } /// <summary>获取或设置该属性映射到的列的数据库提供程序特定的数据类型。</summary> /// <returns>属性将映射到的列的数据库提供程序特定数据类型。</returns> [StringLength(50)] public string[] ColumnNames { get; } [StringLength(50)] public string Selector { get; set; } } public enum ColumnSourceType { /// <summary> /// 枚举数据源 /// </summary> ENUM = 1, /// <summary> /// 表数据源 /// </summary> TABLE = 2, /// <summary> /// bool类型 /// </summary> Boolean = 4 } }