Example #1
0
        public void GetPrimaryKeyValues()
        {
            MetaModel m     = Utils.CommonInitialize(true);
            var       route = RouteTable.Routes[0] as MyDynamicDataRoute;

            MetaTable t   = m.Tables[TestDataContext.TableFooWithDefaults];
            var       foo = new FooWithDefaults();

            Assert.IsNull(t.GetPrimaryKeyValues(null), "#A1");
            AssertExtensions.Throws <HttpException> (() => t.GetPrimaryKeyValues("test"), "#A2");

            IList <object> ret = t.GetPrimaryKeyValues(foo);

            Assert.IsNotNull(ret, "#B1");
            Assert.AreEqual(3, ret.Count, "#B2");
            Assert.IsNotNull(ret[0], "#B2-1");
            Assert.IsTrue(ret[0] is string, "#B2-2");
            Assert.AreEqual("primary key value", ret[0], "#B2-3");
            Assert.IsNotNull(ret[1], "#B2-4");
            Assert.IsTrue(ret[1] is int, "#B2-5");
            Assert.AreEqual(456, ret[1], "#B2-6");
            Assert.IsNotNull(ret[2], "#B2-7");
            Assert.IsTrue(ret[2] is bool, "#B2-8");
            Assert.AreEqual(true, ret[2], "#B2-9");

            t = m.Tables[TestDataContext.TableFooNoPrimaryColumns];
            var foo2 = new FooNoPrimaryColumns();

            ret = t.GetPrimaryKeyValues(foo2);
            Assert.IsNotNull(ret, "#C1");
            Assert.AreEqual(0, ret.Count, "#C2");
        }
 private static bool AreEntitiesEqual(MetaTable table, object entity1, object entity2)
 {
     return Enumerable.SequenceEqual(table.GetPrimaryKeyValues(entity1), table.GetPrimaryKeyValues(entity2));
 }
        private static bool AreEntitiesEqual(MetaTable table, object entity1, object entity2)
        {
            var pks1 = table.GetPrimaryKeyValues(entity1);
            var pks2 = table.GetPrimaryKeyValues(entity2);

            return pks1.SequenceEqual(pks2);
        }