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

     

  • 相关阅读:
    HOW TO MAKE IT FLOW ?
    ansys14.0 从入门到精通
    ansys 14.0
    C++ GUI Qt4 编程 (第二版)
    零基础学QT编程
    医学成像与医学图像处理
    曾巩传
    c++ 编程调试秘笈
    matlab实用教程
    不要重复发明轮子-C++STL
  • 原文地址:https://www.cnblogs.com/cleverJoe/p/5275309.html
Copyright © 2011-2022 走看看