コード例 #1
0
ファイル: TypeMap.cs プロジェクト: maksimkim/entityfunctors
        protected IAccessable MapExpressionToProperty<TProperty>(
            Expression<Func<TSource, TProperty>> source,
            Expression<Func<TTarget, TProperty>> target
        )
        {
            Contract.Assert(source != null);

            var association = new ExpressionToPropertyAssociation<TSource, TTarget, TProperty>(source, target);
            _associations.Add(association);
            return association;
        }
コード例 #2
0
        public void TestInverseMappingDoesNothing()
        {
            var foo = new Foo {
                Id = 10
            };

            Expression <Func <Foo, int> > source = _ => _.Id * _.Id;

            var sut = new ExpressionToPropertyAssociation <Foo, Bar, int>(source, _ => _.Id);

            var bar = CreateReader(sut)(foo);

            bar.Should().NotBeNull();
            foo.Id.Should().Be(10);
        }
コード例 #3
0
        public void TestStringMapping()
        {
            var foo = new Foo {
                Name = "123"
            };

            Expression <Func <Foo, int> > source = _ => _.Name.Length;

            var sut = new ExpressionToPropertyAssociation <Foo, Bar, int>(source, _ => _.Id);

            var expected = source.Compile()(foo);

            var bar = CreateReader(sut)(foo);

            bar.Should().NotBeNull();
            bar.Id.Should().Be(expected);
        }
コード例 #4
0
        public void TestInverseMappingAssignsOnWrite()
        {
            var foo = new Foo {
                Component = new Baz()
            };

            var bar = new Bar {
                Id = 11
            };

            Expression <Func <Foo, int> > source = _ => _.Component.Id;

            var sut = new ExpressionToPropertyAssociation <Foo, Bar, int>(source, _ => _.Id);

            sut.Write();

            CreateWriter(sut)(bar, foo);

            foo.Component.Id.Should().Be(11);
        }