zoukankan      html  css  js  c++  java
  • EF+Lambda查询性能测试

    测试语句如下:

    [TestMethod]
            public void TestFirst()
            {
                using (var db = new EntityContext())
                {
                    db.Database.CreateIfNotExists();
    
                    int i = 0;
                    while (i < N)
                    {
                        var role = new Role();
                        role.Name = "Administrator";
                        db.Role_Table.Add(role);
    
                        var user = new User();
                        user.Name = "Apollo";
                        user.Roles = new List<Role> { role };
    
                        db.User_Table.Add(user);
    
                        i++;
                    }
    
                    Assert.IsTrue(db.SaveChanges() > 0);
    
                    //DbContext中对IQueryable<T>接口的实现,赋予其调用诸如Where、Select等对数据查询计算的功能
                    //AsParallel方法的作用为标识成并行处理
                    var users = db.User_Table.Where(u => u.Name == "Apollo").Select(c => c).AsParallel();
                    db.User_Table.RemoveRange(users);
    
                    var roles = db.Role_Table.Where(r => r.Name == "Administrator").Select(c => c).AsParallel();
                    db.Role_Table.RemoveRange(roles);
    
                    Assert.IsTrue(db.SaveChanges() > 0);
                    Assert.IsTrue(db.User_Table.Count().Equals(0) && (db.Role_Table.Count().Equals(0)));
    
                }
            }

    运行测试,当N分别等于101001000时,完整测试通过所需时间分别为2s3s15s

    N=2000时,单纯Insert部分用时平均27s,而Delete部分只需4s

     

  • 相关阅读:
    ES-- Elasticsearch粗略分析
    springMVC之@Request
    Spring Boot入门
    反射四(动态代理)
    反射三(泛型)
    反射二(字段)
    反射一(方法)
    nutch和solr建立搜索引擎基础(单机版)
    Cinnamon桌面是怎么回事儿
    开启属于你的GNOME桌面
  • 原文地址:https://www.cnblogs.com/cleverJoe/p/5275309.html
Copyright © 2011-2022 走看看