Ejemplo n.º 1
0
        public void GetAllDesignersWithClients_ViaRawSqlNotTracked()
        {
            List <long> times     = new List <long>();
            var         sql       = @"SELECT D.*,C.*
                  FROM DapperDesigners D  
                  LEFT OUTER JOIN DapperDesignerClients dc on (D.Id = dc.DapperDesigner_Id)
                  LEFT OUTER JOIN Clients C on (dc.Client_Id = C.Id);";
            var         designers = new List <DapperDesigner>();

            for (int i = 0; i < _iterations; i++)
            {
                using (var context = new DapperDesignerContext()) {
                    _sw.Reset();
                    _sw.Start();
                    designers = context.Designers.SqlQuery(sql).AsNoTracking().ToList();
                    _sw.Stop();
                    times.Add(_sw.ElapsedMilliseconds);
                    _trackedObjects = context.ChangeTracker.Entries().Count();
                }
            }
            var analyzer = new TimeAnalyzer(times);

            Utils.Output(times, analyzer, "EF: GetAllDesignersWithClientsViaRawSqlNotTracked");
            Console.WriteLine($"Latest Tracked Objects:{_trackedObjects}");

            Assert.AreNotEqual(0, designers.Select(d => d.Clients).Count());
        }
Ejemplo n.º 2
0
 public EFTests()
 {
     //warm up EF
     using (var context = new DapperDesignerContext()) {
         context.Designers.Find(1);
         context.Clients.Find(1);
     }
 }
Ejemplo n.º 3
0
 public void GetProjectedDesigners()
 {
     using (var context = new DapperDesignerContext()) {
         var miniDesigner =
             context.Designers.AsNoTracking()
             .Select(d => new MiniDesigner {
             Id = d.Id, Name = d.LabelName, FoundedBy = d.Founder
         }).FirstOrDefault();
         Assert.AreNotEqual(" ", miniDesigner.Name);
     }
 }
Ejemplo n.º 4
0
        public void CanReuseOpenConnection()
        {
            SqlConnection conn       = Utils.CreateOpenConnection();
            var           connStates = new List <string>();

            for (int i = 0; i < 3; i++)
            {
                connStates.Add(conn.State.ToString());
                using (var context = new DapperDesignerContext(conn, contextOwnsConnection: false)) {
                    var designers = context.Designers.SqlQuery("select top 1 from DapperDesigners");
                }
            }
            CollectionAssert.AreEqual(new[] { "Open", "Open", "Open" }, connStates.ToArray());
        }
Ejemplo n.º 5
0
        public void GetAllDesignersWithContactsAndClients_Tracking()
        {
            List <long> times = new List <long>();

            for (int i = 0; i < _iterations; i++)
            {
                using (var context = new DapperDesignerContext()) {
                    _sw.Reset();
                    _sw.Start();
                    var designers = context.Designers.Include(d => d.ContactInfo).Include(d => d.Clients).ToList();
                    _sw.Stop();
                    times.Add(_sw.ElapsedMilliseconds);
                    _trackedObjects = context.ChangeTracker.Entries().Count();
                }
            }
            var analyzer = new TimeAnalyzer(times);

            Utils.Output(times, analyzer, "EF: GetAllDesignersWithContactsAndClientsTracking");
            Console.WriteLine($"Latest Tracked Objects:{_trackedObjects}");
            Assert.IsTrue(true);
        }
Ejemplo n.º 6
0
        public void GetAllDesigners_ViaRawSqlNotTracked()
        {
            List <long> times = new List <long>();
            var         sql   = "select * from DapperDesigners";

            for (int i = 0; i < _iterations; i++)
            {
                using (var context = new DapperDesignerContext()) {
                    _sw.Reset();
                    _sw.Start();
                    var designers = context.Designers.SqlQuery(sql).AsNoTracking().ToList();
                    _sw.Stop();
                    times.Add(_sw.ElapsedMilliseconds);
                    _trackedObjects = context.ChangeTracker.Entries().Count();
                }
            }
            var analyzer = new TimeAnalyzer(times);

            Utils.Output(times, analyzer, "EF: GetAllDesignersRawSql");
            Console.WriteLine($"Latest Tracked Objects:{_trackedObjects}");

            Assert.IsTrue(true);
        }
Ejemplo n.º 7
0
        public void GetProjectedDesigners_ViaRawSqlNotTracked()
        {
            List <long> times     = new List <long>();
            var         sql       = "select LabelName as Name,id from DapperDesigners";
            var         designers = new List <MiniDesigner>();

            for (int i = 0; i < _iterations; i++)
            {
                using (var context = new DapperDesignerContext()) {
                    _sw.Reset();
                    _sw.Start();
                    designers = context.Database.SqlQuery <MiniDesigner>(sql).ToList();
                    _sw.Stop();
                    times.Add(_sw.ElapsedMilliseconds);
                    _trackedObjects = context.ChangeTracker.Entries().Count();
                }
            }
            var analyzer = new TimeAnalyzer(times);

            Utils.Output(times, analyzer, "EF: GetProjectedDesigners_ViaRawSqlNotTracked");
            Console.WriteLine($"Latest Tracked Objects:{_trackedObjects}");

            Assert.AreNotEqual(0, designers.Count());
        }