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); }