ORAM思想

1.(表实体和表之间的相互转化)微型的ORAM框架:Dapper(sql)/PETAPOCO(跨数据库)

2.ab(并发测试)/LogRunner(惠普的专业测试)/aqtime(强大到可以提示每行代码执行时间)

  td(开发人员的测试工具)

3.级别高的模板没有tt文件时,右键添加代码生成项,可以生成Model文件。

4.导航属性:数据集方便进行访问

5.Linq语句中只能使用&& ||

一个简单的Linq的例子

IQueryable<UserInfor> temp = from u in dbContext.UserInfor
                                         where u.Id >= 1&& u.UName.Contains("o")
                                         && u.UName.StartsWith("D")
                                         select u;



6.LinQ整合后性能是最好的

IQueryable<UserInfor> temp = from u in dbContext.UserInfor
                                         where u.Id >= 1&& u.UName.Contains("o")
                                         && u.UName.StartsWith("D")
                                         select u;
            var temp2 = from u in temp
                        where u.Id > 0
                        select u;


7. 第一种延迟加载 多 LinQ语句个整合,第二种延迟加载,根据导航属性自动查询关联表的信息

         IQueryable<UserInfor> temp = from u in dbContext.UserInfor.Include("OrderInfo")
                                         where u.Id >= 1&& u.UName.Contains("o")
                                         && u.UName.StartsWith("D")
                                         select u;
            var temp2 = from u in temp
                        where u.Id > 0
                        select u;

            foreach (var userInfor in temp)
            {
                foreach (var orderInfor in userInfor.OrderInfor)
                {
                    Console.WriteLine(userInfor.UName + " " + orderInfor.Id + " " + orderInfor.Content);
                }
            }


8.大数据表进行查询时技巧:

一.把链接查询进行分解,转换成单个大表

二. 使用临时表可以解决死锁的问题 . 建立临时表的方法:select * into #(#) Tb from UserInfo;

9.lambda查询

var data = dbContext.UserInfor.Where(u => u.Id > 0);
            foreach (var userInfo in data)
            {
                Console.WriteLine(userInfo.Id + " " + userInfo.UName);
            }


10.分页查询

 #region 分页
            var pageData = dbContext.UserInfor
                .Where(u => u.Id > 0)
                //.OrderBy(u=>u.Id) 省序
                .OrderByDescending(u => u.Id)
                //一页5条  取3页
                .Skip(5 * (3 - 1))
                .Take(5);

            foreach (var aa in pageData)
            {
                
            }
  #endregion


11.bootstrap是一个很好的做前台的工具

12.处理数据混乱的方法

web:一次请求新建一个上下文

winform:使用using

13 using范例

using (DataModelContainer dbContext=new DataModelContainer())

{

   dbContext.Database.CreateIfNotExists();

  UserInfo userinfo=new  UserInfo();

userinfo.age=10;

userinfo.name="aaaa";

dbContext.UserInfo.add(userinfor);

dbContext.SaveChages();

}

14.dbContext一次请求共用一个上下文

  public class DbContextHelper
    {
        //保证一次请求公用一个上下文实例
        public static MyDbContext GetCurrentDbContext()
        {
           // HttpContext :一次请求,HttpContext已经保证只有一个实例
            MyDbContext dbContext=HttpContext.Current.Items["MyDbContext"] as MyDbContext;
            if(dbContext==null)
            {
                dbContext=new MyDbContext();
                HttpContext.Current.Items.Add("MyDbContext",dbContext);
            }

            //一个线程共用一个上下文实例,一次请求用一个线程
            MyDbContext dbContext_process = System.Runtime.Remoting.Messaging.CallContext.GetData("DbContext") as MyDbContext;
            if (dbContext_process == null)
            {
                dbContext_process = new MyDbContext();
                CallContext.SetData("DbContext", dbContext);
            }
            return dbContext;
        }
    }

    public class MyDbContext
    {
    
    }

15.Mono是一个跨平台的项目,这个是非常重要的
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值