private ReferenceComponentMapping CreateInstance() { var property = new DummyPropertyInfo("ComponentProperty", typeof(ComponentTarget)).ToMember(); var instance = new ReferenceComponentMapping(ComponentType.Component, property, typeof(ComponentTarget), typeof(Target), null); instance.AssociateExternalMapping(new ExternalComponentMapping(ComponentType.Component)); return(instance); }
public override void establish_context() { visitor = new ComponentColumnPrefixVisitor(); reference_with_a_prefix = new ReferenceComponentMapping(ComponentType.Component, new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), column_prefix); reference_with_a_prefix.AssociateExternalMapping(new ExternalComponentMapping(ComponentType.Component)); reference_without_a_prefix = new ReferenceComponentMapping(ComponentType.Component, new DummyPropertyInfo("PROPERTY", typeof(Target)).ToMember(), typeof(ComponentTarget), typeof(Target), null); var external_mapping = new ExternalComponentMapping(ComponentType.Component); external_mapping.AddProperty(property_with_column("propertyColumn")); reference_without_a_prefix.AssociateExternalMapping(external_mapping); }
public override void ProcessComponent(ReferenceComponentMapping mapping) { var providers = componentProviders.Where(x => x.Type == mapping.Type); if (!providers.Any()) { throw new MissingExternalComponentException(mapping.Type, mapping.ContainingEntityType, mapping.Member); } if (providers.Count() > 1) { throw new AmbiguousComponentReferenceException(mapping.Type, mapping.ContainingEntityType, mapping.Member); } mapping.AssociateExternalMapping(providers.Single().GetComponentMapping()); mapping.MergedModel.AcceptVisitor(this); }
public override void ProcessComponent(ReferenceComponentMapping mapping) { var context = new ComponentResolutionContext { ComponentType = mapping.Type, ComponentMember = mapping.Member, EntityType = mapping.ContainingEntityType }; var component = resolvers .Select(x => x.Resolve(context, componentProviders)) .FirstOrDefault(x => x != null); if (component == null) { throw new MissingExternalComponentException(mapping.Type, mapping.ContainingEntityType, mapping.Member); } mapping.AssociateExternalMapping(component); mapping.MergedModel.AcceptVisitor(this); }