简单的ORM

it2022-05-09  26

自定义属性: 自定义属性  1using System; 2using System.ComponentModel; 3 4namespace Relaction.ORM 5{ 6    /**//// <summary> 7    ///  8    /// </summary> 9    /// 10    [AttributeUsage(AttributeTargets.Property,Inherited = false,AllowMultiple = false)]11    public class ColumnAttribute:Attribute12    {13        private string _columnName = null;14        public string ColumnName15        {16            get17            {18                return _columnName;19            }20        }2122        public ColumnAttribute(string columnName)23        {24            _columnName = columnName;25        }26    }27}28 实体类: 实体类,并添加上相应属性  1using System; 2 3namespace Relaction.ORM 4{ 5    /**//// <summary> 6    ///  7    /// </summary> 8    public class Customer 9    {10        private string _customerID,_companyName,_contactName;11        [Column("CustomerID")]12        public string CustomerID13        {14            get15            {16                return _customerID;17            }18            set19            {20                _customerID = value;21            }2223        }24        [Column("CompanyName")]25        public string CompanyName26        {27            get28            {29                return _companyName;30            }31            set32            {33                _companyName = value;34            }35        }36        [Column("ContactName")]37        public string ContactName38        {39            get40            {41                return _contactName;42            }43            set44            {45                _contactName = value;46            }47        }48        public Customer()49        {50        }51    }52}53 简单的ORM Helper ORM Helper  1using System; 2 3using System.Collections; 4using System.ComponentModel; 5using System.Reflection; 6using System.Data; 7using System.Data.Common; 8 9namespace Relaction.ORM10{11    /**//// <summary>12    /// 13    /// </summary>14    public class FillHelper15    {16        public static IList Fill(Type rowType,IDataReader reader)17        {18            ArrayList dataList = new ArrayList();19            while(reader.Read())20            {21                object item = Activator.CreateInstance(rowType,false);22                foreach(MemberInfo mi in rowType.GetMembers())23                {24                    foreach(ColumnAttribute attr in mi.GetCustomAttributes(typeof(ColumnAttribute),false))25                    {26                        int index = reader.GetOrdinal(attr.ColumnName);27                        if(index != -1 )28                        {29                            if(mi.MemberType == MemberTypes.Field)30                                ((FieldInfo)mi).SetValue(item,reader.GetValue(index));31                            else32                                if(mi.MemberType == MemberTypes.Property)33                                    ((PropertyInfo)mi).SetValue(item,reader.GetValue(index),null);34                        }35                    }36                } 37                dataList.Add(item);38            }39            return dataList;40        }41        public FillHelper()42        {43        }44    }45}46

转载于:https://www.cnblogs.com/nanshouyong326/archive/2006/11/28/574842.html

相关资源:EzeOrm纯手撸的一套简易javaorm框架。暂只支持mysql。

最新回复(0)