C# 自己實現的一套ORM程序附帶實體生成工具

程序全部是自己實現的,原理是對sql語句的包裝,現在支持mysql和sqlite,可以擴展到現在主流的數據庫。


程序下載地址:C# 自已實現ORM程序下載


實體生成工具下載:實體生成工具下載


下面對程序進行介紹。


首先添加引用:DB.DAL.dll,MySql.Data.dll,System.Data.SQLite.dll


建立數據源:

<span style="font-size:14px;">public class dbResource
    {
        public static string TestDataConnStr = ConfigurationManager.ConnectionStrings["TestDataConnStr"].ConnectionString;

        /// <summary>
        /// Test數據庫數據源
        /// </summary>
        public static IDataSourceType TestDataDBSource
        {
            get
            {
                IDataSourceType ds = IDataSourceTypeFactory.Create(DataSourceType.MySQL, TestDataConnStr);
                return ds;
            }
        }
    }</span>

在配置文件中添加如下連接字符串:

<span style="font-size:14px;"><connectionStrings>
    <add name="TestDataConnStr" connectionString="server=localhost;uid=root;pwd=123456;Database=Test;Connection Timeout=120;" />
  </connectionStrings></span>


使用生成工具生成實體類

使用圖例:

選擇生成的語言及數據庫

生成:


其中生成的實體類例子如下:

<span style="font-size:14px;">[DataContract]
    [Table(TableName = "user")]
    public class drUser
    {
        [DataMember]
        [Column(IsPrimary = true, IsIdentity = true)]
        public int Id { get; set; }
        [DataMember]
        public string Name { get; set; }

        public drUser()
        {
        }
    }</span>


以下是對數據庫增刪改查的使用:

           //查詢出所有的用戶信息
            List<drUser> list = ORMHelper.GetListBySQL<drUser>("select * from user", dbResource.TestDataDBSource);

            //根據sql語句查詢出用戶
            try
            {
                drUser user1 = ORMHelper.GetModelBySQL<drUser>("select * from user where id = 2", dbResource.TestDataDBSource);
                MessageBox.Show(user1.Name);
            }
            catch
            {
                MessageBox.Show("this is a exception");
            }

            //通過SQL語句修改個人的信息
            ORMHelper.UpdateBySQL("update user set Name='abc' where id=2", dbResource.TestDataDBSource);

            drUser user = new drUser();
            user.Id = 1;
            user.Name = "daaa";
            //根據實體對象更新一條數據
            ORMHelper.UpdateModelById<drUser>(user, dbResource.TestDataDBSource);

            //根據id刪除用戶
            drUser user2 = ORMHelper.GetModelBySQL<drUser>("select * from user where id = 2", dbResource.TestDataDBSource);
            ORMHelper.DeleteModelById<drUser>(user2, dbResource.TestDataDBSource);

            //根據where條件刪除用戶
            //ORMHelper.DeleteModel<drUser>("Id > 3", dbResource.TestDataDBSource);

            List<drUser> alist = new List<drUser>();
            for (int i = 4; i < 10; i++) {
                drUser duser = new drUser();
                duser.Id = i;
                duser.Name = "aaa"+i;
                alist.Add(duser);
                 
            }

            //添加一組數據  批量插入數據庫
            ORMHelper.InsertList<drUser>(alist,dbResource.TestDataDBSource);
           
            //根據model實體添加一條記錄
            drUser user3 = new drUser();
            user3.Name = "dafa";
            int j = 18;
            ORMHelper.InsertModel<drUser>(user3, out j, dbResource.TestDataDBSource, false);


http://www.teahoo.net/IT/20151113616.html



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章