示例#1
0
        /// <summary>
        /// Create a nested component mapping.
        /// </summary>
        /// <param name="property">Component property</param>
        /// <param name="nestedCompositeElementAction">Action for creating the component</param>
        /// <example>
        /// HasMany(x => x.Locations)
        ///   .Component(c =>
        ///   {
        ///     c.Map(x => x.Name);
        ///     c.Component(x => x.Address, addr =>
        ///     {
        ///       addr.Map(x => x.Street);
        ///       addr.Map(x => x.PostCode);
        ///     });
        ///   });
        /// </example>
        public void Component <TChild>(Expression <Func <T, TChild> > property, Action <CompositeElementPart <TChild> > nestedCompositeElementAction)
        {
            var nestedCompositeElement = new CompositeElementPart <TChild>(entity, property.ToMember());

            nestedCompositeElementAction(nestedCompositeElement);

            components.Add(nestedCompositeElement);
        }
示例#2
0
        /// <summary>
        /// Maps this collection as a collection of components.
        /// </summary>
        /// <param name="action">Component mapping</param>
        public T Component(Action <CompositeElementPart <TChild> > action)
        {
            var part = new CompositeElementPart <TChild>(typeof(T));

            action(part);

            componentMapping = part;

            return((T)this);
        }