/// <summary> /// /// </summary> /// <param name="builder"></param> public void Apply(CollectionNavigationBuilder <TEntityType, TTargetEntity> builder) { foreach (var a in _actions) { a(builder); } }
public override TestReferenceCollectionBuilder <TEntity, TRelatedEntity> WithOne( Expression <Func <TRelatedEntity, TEntity> > navigationExpression = null, Action <NavigationBuilder> navigationConfiguration = null) => new GenericStringTestReferenceCollectionBuilder <TEntity, TRelatedEntity>( CollectionNavigationBuilder.WithOne( navigationExpression?.GetPropertyAccess().GetSimpleMemberName(), navigationConfiguration));
/// <summary> /// Relationship by name without properties where the declaring entity /// is the start of the relationship /// </summary> /// <param name="collectionNavigationBuilder"></param> /// <param name="name"></param> /// <returns></returns> public static CollectionNavigationBuilder <TEntity, TRelatedEntity> HasRelationship <TEntity, TRelatedEntity>( [NotNull] this CollectionNavigationBuilder <TEntity, TRelatedEntity> collectionNavigationBuilder, [CanBeNull] string name) where TEntity : class where TRelatedEntity : class => HasRelationship( (CollectionNavigationBuilder)collectionNavigationBuilder, name, typeof(TEntity) ) as CollectionNavigationBuilder <TEntity, TRelatedEntity>;
/// <summary> /// (Detached) Configures a relationship where this entity type owns (see [Owned]) instances of the specified entity. /// </summary> /// <typeparam name="TEntity">Clr Type of the entity.</typeparam> /// <typeparam name="TRelatedEntity">Clr type of the related entity.</typeparam> /// <param name="builder">The entity builder</param> /// <param name="navigationExpression">A property selector</param> /// <returns>A pre-configured collection builder</returns> public static CollectionNavigationBuilder <TEntity, TRelatedEntity> OwnsMany <TEntity, TRelatedEntity>(this EntityTypeBuilder <TEntity> builder, Expression <Func <TEntity, IEnumerable <TRelatedEntity> > > navigationExpression = null) where TEntity : class where TRelatedEntity : class { CollectionNavigationBuilder <TEntity, TRelatedEntity> navigationBuilder = builder.HasMany(navigationExpression); RunAttributeConvention(navigationBuilder.GetInfrastructure(), navigationExpression, new OwnedNavigationAttributeConvention()); return(navigationBuilder); }
/// <summary> /// (Detached) Configures a relationship where this entity type has (see [Associated]) instances of the specified entity. /// </summary> /// <typeparam name="TEntity">Clr Type of the entity.</typeparam> /// <typeparam name="TRelatedEntity">Clr type of the related entity.</typeparam> /// <param name="builder">The entity builder</param> /// <param name="navigationExpression">A property selector</param> /// <returns>A pre-configured collection builder</returns> public static CollectionNavigationBuilder <TEntity, TRelatedEntity> RefersMany <TEntity, TRelatedEntity>(this EntityTypeBuilder <TEntity> builder, Expression <Func <TEntity, IEnumerable <TRelatedEntity> > > navigationExpression = null) where TEntity : class where TRelatedEntity : class { CollectionNavigationBuilder <TEntity, TRelatedEntity> navigationBuilder = builder.HasMany(navigationExpression); InternalRelationshipBuilder internalBuilder = navigationBuilder.GetInfrastructure(); internalBuilder.Metadata.SetAnnotation(typeof(AssociatedAttribute).FullName, new AssociatedAttribute(), ConfigurationSource.Explicit); return(navigationBuilder); }
/// <summary> /// Relationship by Clr type /// </summary> /// <param name="collectionNavigationBuilder"></param> /// <param name="clrType"></param> /// <param name="startingClrType"></param> /// <returns></returns> public static CollectionNavigationBuilder HasRelationship( [NotNull] this CollectionNavigationBuilder collectionNavigationBuilder, [CanBeNull] Type clrType, [CanBeNull] Type startingClrType ) { Check.NotNull(collectionNavigationBuilder, nameof(collectionNavigationBuilder)); collectionNavigationBuilder.GetInfrastructure <InternalRelationshipBuilder>() .Cypher(ConfigurationSource.Explicit) .HasRelationship(clrType, startingClrType); return(collectionNavigationBuilder); }
/// <summary> /// Relationship by name without properties /// </summary> /// <param name="collectionNavigationBuilder"></param> /// <param name="name"></param> /// <param name="startingName"></param> /// <returns></returns> public static CollectionNavigationBuilder HasRelationship( [NotNull] this CollectionNavigationBuilder collectionNavigationBuilder, [CanBeNull] string name, [CanBeNull] string startingName ) { Check.NotNull(collectionNavigationBuilder, nameof(collectionNavigationBuilder)); Check.NullButNotEmpty(name, nameof(name)); collectionNavigationBuilder.GetInfrastructure <InternalRelationshipBuilder>() .Cypher(ConfigurationSource.Explicit) .HasRelationship(name, startingName); return(collectionNavigationBuilder); }
public override TestReferenceCollectionBuilder <TEntity, TRelatedEntity> WithOne( Expression <Func <TRelatedEntity, TEntity> > navigationExpression = null) => new GenericStringTestReferenceCollectionBuilder <TEntity, TRelatedEntity>( CollectionNavigationBuilder.WithOne(navigationExpression?.GetPropertyAccess().Name));
public GenericStringTestCollectionNavigationBuilder(CollectionNavigationBuilder <TEntity, TRelatedEntity> collectionNavigationBuilder) : base(collectionNavigationBuilder) { }
public GenericTestCollectionNavigationBuilder(CollectionNavigationBuilder <TEntity, TRelatedEntity> collectionNavigationBuilder) { CollectionNavigationBuilder = collectionNavigationBuilder; }
public NonGenericStringTestCollectionNavigationBuilder(CollectionNavigationBuilder collectionNavigationBuilder) { CollectionNavigationBuilder = collectionNavigationBuilder; }
public override TestCollectionCollectionBuilder <TRelatedEntity, TEntity> WithMany( Expression <Func <TRelatedEntity, IEnumerable <TEntity>?> > navigationExpression) => new GenericStringTestCollectionCollectionBuilder <TRelatedEntity, TEntity>( CollectionNavigationBuilder.WithMany( navigationExpression.GetMemberAccess().GetSimpleMemberName()));
public override TestReferenceCollectionBuilder <TEntity, TRelatedEntity> WithOne( Expression <Func <TRelatedEntity, TEntity?> >?navigationExpression = null) => new GenericStringTestReferenceCollectionBuilder <TEntity, TRelatedEntity>( CollectionNavigationBuilder.WithOne( navigationExpression?.GetMemberAccess().GetSimpleMemberName()));
public override TestReferenceCollectionBuilder <TEntity, TRelatedEntity> InverseReference(Expression <Func <TRelatedEntity, TEntity> > reference = null) => new GenericStringTestReferenceCollectionBuilder <TEntity, TRelatedEntity>(CollectionNavigationBuilder.InverseReference(reference?.GetPropertyAccess().Name));
public override TestCollectionCollectionBuilder <TRelatedEntity, TEntity> WithMany( Expression <Func <TRelatedEntity, IEnumerable <TEntity>?> > navigationExpression) => new GenericTypeTestCollectionCollectionBuilder <TRelatedEntity, TEntity>( CollectionNavigationBuilder.WithMany(navigationExpression));