Example #1
0
        public static void Test()
        {
            var m1 = new ModelTest2
            {
                BeginDate = new DateTime(2017, 7, 1),
                CompanyId = 123,
                Value     = 1
            };
            var m2 = new ModelTest2
            {
                BeginDate = new DateTime(2017, 7, 2),
                CompanyId = 123,
                Value     = 2
            };
            var m3 = new ModelTest2
            {
                BeginDate = new DateTime(2017, 7, 3),
                CompanyId = 123,
                Value     = 3
            };

            var n1 = new ModelTest2
            {
                BeginDate = new DateTime(2017, 7, 1),
                CompanyId = 123,
                Value     = 100
            };
            var n2 = new ModelTest2
            {
                BeginDate = new DateTime(2017, 7, 2),
                CompanyId = 123,
                Value     = 200
            };

            var t1 = new List <ModelTest2> {
                m1, m2, m3
            };
            var t2 = new List <ModelTest2> {
                n1, n2
            };

            var result = t1.LeftOuterJoin(t2,
                                          p => new { p.BeginDate, p.CompanyId },
                                          d => new { d.BeginDate, d.CompanyId },
                                          (p, d) => new { p.BeginDate, p.CompanyId, Value = d?.Value ?? 0 }
                                          ).ToList();

            // override Equals in class
            result = t1.LeftOuterJoin(t2,
                                      p => p,
                                      d => d,
                                      (p, d) => new { p.BeginDate, p.CompanyId, Value = d?.Value ?? 0 }
                                      ).ToList();
        }
Example #2
0
 public bool Equals(ModelTest2 other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(BeginDate == other.BeginDate && CompanyId == other.CompanyId);
 }