protected override void Initialize()
        {
            var ed1 = new JoinNamingRefEdEntity {
                Data = "data1"
            };
            var ed2 = new JoinNamingRefEdEntity {
                Data = "data2"
            };
            var ing1 = new JoinNamingRefIngEntity {
                Data = "x", Reference = ed1
            };

            using (var tx = Session.BeginTransaction())
            {
                ed_id1  = (int)Session.Save(ed1);
                ed_id2  = (int)Session.Save(ed2);
                ing_id1 = (int)Session.Save(ing1);
                tx.Commit();
            }
            using (var tx = Session.BeginTransaction())
            {
                ing1.Data      = "y";
                ing1.Reference = ed2;
                tx.Commit();
            }
        }
        public void VerifyHistoryOfIngId1()
        {
            var ver1 = new JoinNamingRefIngEntity {
                Id = ing_id1, Data = "x", Reference = null
            };
            var ver2 = new JoinNamingRefIngEntity {
                Id = ing_id1, Data = "y", Reference = null
            };

            Assert.AreEqual(ver1, AuditReader().Find <JoinNamingRefIngEntity>(ing_id1, 1));
            Assert.AreEqual(ver2, AuditReader().Find <JoinNamingRefIngEntity>(ing_id1, 2));

            Assert.AreEqual(new JoinNamingRefEdEntity {
                Id = ed_id1, Data = "data1"
            },
                            AuditReader().Find <JoinNamingRefIngEntity>(ing_id1, 1).Reference);
            Assert.AreEqual(new JoinNamingRefEdEntity {
                Id = ed_id2, Data = "data2"
            },
                            AuditReader().Find <JoinNamingRefIngEntity>(ing_id1, 2).Reference);
        }