zoukankan      html  css  js  c++  java
  • 打开深蓝医生的国庆大礼包!

    打开深蓝医生国庆大礼包,里面是一个orm,我就看看了看这个开源的orm,我觉得很多人应该只看看文章并没有下载也没有看源码,我建议有时间的还是看看好

    国庆大礼包地址:节前送礼:PDF.NET(PWMIS数据开发框架)V3.0版开源

    深蓝医生orm源代码的好处

    1: 医生的代码几乎所有的地方都有注释,而且是中文的,这是很多国外开源代码所没有的,也是很多国内开源代码所没有的

    2 :医生的代码已经写了5年,有很多地方的代码写了有注掉了,改为新的代码,发现看这样的代码还是比较有意思的

    3:医生的orm是这样的,开始计划写个sqlhelper=》ADO.NEThelper=》queryhelper=》orm

    4:我认为,医生的代码是我能看懂的一个开源的项目1

    5:可以发现很多问题。。。。。。。。。。。

    6:医生在博客园,找他方便,在一个群里,找他更方便O(∩_∩)O~

    医生orm的基本增查改

    ps:医生的demo做了很烂,因为医生的哲学没学好,把orm的特色和orm的基本功能搞反了,demo里面都是特色,而没有基本功能

    sql

    CREATE TABLE [dbo].[userinfo](
        [id] [int] IDENTITY(1,1) NOT NULL,
        [username] [nvarchar](50) NOT NULL,
        [userpassword] [nvarchar](50) NOT NULL,
        [userbrief] [ntext] NOT NULL,
        [userimg] [nvarchar](50) NOT NULL,
     CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
     
    GO

    用医生的工具生成相关的实体类即可

    插入demo

            protected void Page_Load(object sender, EventArgs e)
            {
                
     
                SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
                EntityQuery<SuperMarket.userinfo> query = new EntityQuery<SuperMarket.userinfo>(objuserinfo,true);
                objuserinfo.username = "互联网fans";
                objuserinfo.userpassword = "1234567";
                objuserinfo.userimg = "http://tp2.sinaimg.cn/1271114553/180/5614484664/1";
                objuserinfo.userbrief = @"博客园菜鸟级博主,七脸阁主题APP开发者,专注于WebApp的开发和研究,
    提倡通过命题作文寻找创新的灵感和创意的点子。
    新浪应用搜索最新作品:表情帝。";
                //query.Save();
               // Response.Write(objuserinfo.id);
                int id= query.Insert(objuserinfo);
                Response.Write(id);
     
     
                /*问题1: 这样写代码 无效
                    SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
                     objuserinfo.username = "互联网fans";
                objuserinfo.userpassword = "1234567";
                objuserinfo.userimg = "http://tp2.sinaimg.cn/1271114553/180/5614484664/1";
                objuserinfo.userbrief = @"博客园菜鸟级博主,七脸阁主题APP开发者,专注于WebApp的开发和研究,
    提倡通过命题作文寻找创新的灵感和创意的点子。
    新浪应用搜索最新作品:表情帝。";
                   EntityQuery<SuperMarket.userinfo> query = new EntityQuery<SuperMarket.userinfo>(objuserinfo,true);
                   query.Save();
                Response.Write(objuserinfo.id);
                 * 
                 * 问题2: 用save方法统一了insert 和update 不是很习惯
                 * 问题3: Insert 方法返回整数,很容易误解,以为返回的是自增id
                 */
     
     
     
     
     
                /*
                User zhang_san = new User();
                //zhang_san.Uid = 5;
                EntityQuery<User> query = new EntityQuery<User>(zhang_san,true );
                zhang_san.Name = "张三1";
                query.Save();//新增
                Console.WriteLine("新增实体对象OK");
                zhang_san.Birthday = new DateTime (1977,3,10);
                query.Save();//修改
                Console.WriteLine("修改实体对象OK");
    注:EntityQuery<T>(T,true) 表示当前实体类的持久化方式为“新增”。
                 * ps 下我学.NET学了好长时间才知道什么叫持久化,但是这个持久化放在rom里面貌似不合适。。。。。
               */
           
                
            }

    update demo

     protected void Page_Load(object sender, EventArgs e)
            {
                SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
                //OQL query = new OQL(objuserinfo);
     
                //OQL result = query.Select().Where(query.Condition.AND(objuserinfo.id, "=", 1)).END;
                
     
                //objuserinfo.id = 1;
                //EntityQuery<SuperMarket.userinfo>.Fill(objuserinfo);
                //objuserinfo.userbrief = "我修改" + DateTime.Now.ToString();
                objuserinfo.id = 1;
                //EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo,false);
                EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo, true);
                
                query2.FillEntity(objuserinfo);
                objuserinfo.userbrief = "我修改" + DateTime.Now.ToString();
                //int falg= query2.Save(objuserinfo);
     
                int falg = query2.Update(objuserinfo);
     
               
               
     
                //List<SuperMarket.userinfo> mylist = EntityQuery<SuperMarket.userinfo>.QueryList(result);
                // 不知道主键情况下 获取列表?
     
                /*
                      OQL q = OQL.From(emp)
                             .Select(emp.WorkNumber,emp.EmployeeName)
                             .Where(emp.JobName)
                             .OrderBy(emp.EmployeeName, "asc")
                             .END;
                         List<Employee> list= EntityQuery<Employee>.QueryList(q);
                 */
     
     
     
     
     
     
            }

    select demo

      protected void Page_Load(object sender, EventArgs e)
            {
                //获取一个实体的信息
                SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
                objuserinfo.id = 1;
                EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo, true);
                query2.FillEntity(objuserinfo);
     
                //获取一个list
                OQL query = new OQL(objuserinfo);
                OQL result = query.Select().Where(query.Condition.AND(objuserinfo.id, ">", 1)).END;
                List<SuperMarket.userinfo> mylist = EntityQuery<SuperMarket.userinfo>.QueryList(result);
     
            }

    基本 的增改查 OK了

  • 相关阅读:
    转载:山寨币凶猛
    Windows8.1 关机异常的解决
    Windows8、Windows8.1使用便签工具
    下载Sourceforge等国内无法下载站点文件的另一种方法
    专著出版成本计算
    PL2303 Windows8.1驱动
    转载:寒门再难出贵子
    华为荣耀品牌独立,子品牌战略能否实现新突破
    路由大战前夜,盘点智能路由的前世今生
    2020年实用工具推荐
  • 原文地址:https://www.cnblogs.com/qqloving/p/2743269.html
Copyright © 2011-2022 走看看