예제 #1
0
        public void StringForeignKeyNotNullWorks()
        {
            var ting = new EntityReferencingEntityWithPrimaryKey();

            ting.GetType().GetField("EntityWithStringPrimaryKeyId").SetValue(ting, "123");
            Assert.Equal("123", ting.EntityWithStringPrimaryKey.Id);
        }
예제 #2
0
        public void SetToNullOnNonFetchedButNotNullStringPkProperty()
        {
            var check = new EntityReferencingEntityWithPrimaryKey();

            check.GetType().GetField("EntityWithStringPrimaryKeyId").SetValue(check, "Foo");
            Assert.Equal("Foo", check.EntityWithStringPrimaryKey.Id);

            var ting          = new EntityReferencingEntityWithPrimaryKey();
            var tingAsTracked = (ITrackedEntity)ting;

            ting.GetType().GetField("EntityWithStringPrimaryKeyId").SetValue(ting, "Foo");
            tingAsTracked.EnableTracking();
            ting.EntityWithStringPrimaryKey = null;
            Assert.Equal(1, tingAsTracked.GetDirtyProperties().Count());
            Assert.True(tingAsTracked.GetDirtyProperties().First() == "EntityWithStringPrimaryKey");
            Assert.Equal("Foo", ((EntityWithStringPrimaryKey)tingAsTracked.GetOldValue("EntityWithStringPrimaryKey")).Id);
        }