/// <summary> /// Maps <see cref="Address"/> for the <typeparamref name="TRelatedEntity"/> owned by <typeparamref name="TEntity"/>. /// </summary> /// <typeparam name="TEntity">The entity type.</typeparam> /// <typeparam name="TRelatedEntity">The related entity type.</typeparam> /// <param name="builder">The <see cref="OwnedNavigationBuilder{TEntity,TRelatedEntity}"/>.</param> /// <param name="expression">The <see cref="Expression"/>.</param> public static void MapType <TEntity, TRelatedEntity>(this OwnedNavigationBuilder <TEntity, TRelatedEntity> builder, Expression <Func <TRelatedEntity, Address> > expression) where TEntity : class where TRelatedEntity : class { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } builder .OwnsOne(expression) .Property(x => x.String) .HasMaxLength(256); builder .OwnsOne(expression) .HasIndex(x => x.String); builder .OwnsOne(expression) .MapType(x => x.Location); }
/// <summary> /// Maps <see cref="Location"/> for the <typeparamref name="TRelatedEntity"/> owned by <typeparamref name="TEntity"/>. /// </summary> /// <typeparam name="TEntity">The entity type.</typeparam> /// <typeparam name="TRelatedEntity">The related entity type.</typeparam> /// <param name="builder">The <see cref="OwnedNavigationBuilder{TEntity,TRelatedEntity}"/>.</param> /// <param name="expression">The <see cref="Expression"/>.</param> public static void MapType <TEntity, TRelatedEntity>(this OwnedNavigationBuilder <TEntity, TRelatedEntity> builder, Expression <Func <TRelatedEntity, Location> > expression) where TEntity : class where TRelatedEntity : class { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } builder .OwnsOne(expression) .Property(x => x.Latitude) .HasDefaultValue(0.00) .IsRequired(); builder .OwnsOne(expression) .Property(x => x.Longitude) .HasDefaultValue(0.00) .IsRequired(); builder .OwnsOne(expression) .HasIndex(x => new { x.Latitude, x.Longitude }); }
public override TestOwnedNavigationBuilder <TEntity, TDependentEntity> OwnsOne <TNewDependentEntity>( Expression <Func <TDependentEntity, TNewDependentEntity> > navigationExpression, Action <TestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity> > buildAction) => Wrap( OwnedNavigationBuilder.OwnsOne <TNewDependentEntity>( navigationExpression?.GetMemberAccess().GetSimpleMemberName(), r => buildAction(Wrap(r))));
public override TestOwnedNavigationBuilder <TEntity, TDependentEntity> OwnsOne <TNewDependentEntity>( Expression <Func <TDependentEntity, TNewDependentEntity> > navigationExpression, Action <TestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity> > buildAction) => Wrap <TEntity, TDependentEntity>( OwnedNavigationBuilder.OwnsOne( typeof(TNewDependentEntity).FullName, navigationExpression.GetPropertyAccess().GetSimpleMemberName(), r => buildAction(new NonGenericStringTestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity>(r))));
/// <summary> /// Configure LocalizedText value object as a nested ownership /// </summary> /// <param name="builder"></param> public virtual OwnedNavigationBuilder OwnsLocalizedText <OEntity>(OwnedNavigationBuilder <TEntity, OEntity> builder, Expression <Func <OEntity, LocalizedText> > column) where OEntity : class { //Get column name from expression Expression expression = column.Body as Expression; MemberExpression memeberExpression = expression as MemberExpression; return(builder.OwnsOne(typeof(LocalizedText), memeberExpression.Member.Name, e => { e.Property("StringValue").HasColumnName(memeberExpression.Member.Name).IsUnicode(true).IsRequired(); e.Ignore("CurrentCultureText"); })); }
/// <summary> /// Maps <see cref="Duration"/> for <typeparamref name="TRelatedEntity"/> owned by <typeparamref name="TEntity"/>. /// </summary> /// <typeparam name="TEntity">The entity type.</typeparam> /// <typeparam name="TRelatedEntity">The related entity type.</typeparam> /// <param name="builder">The <see cref="OwnedNavigationBuilder{TEntity,TRelatedEntity}"/>.</param> /// <param name="expression">The <see cref="Expression"/>.</param> public static void MapType <TEntity, TRelatedEntity>(this OwnedNavigationBuilder <TEntity, TRelatedEntity> builder, Expression <Func <TRelatedEntity, Duration> > expression) where TEntity : class where TRelatedEntity : class { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } builder .OwnsOne(expression) .Property(x => x.Time) .HasDefaultValue(TimeSpan.Zero) .IsRequired(); builder .OwnsOne(expression) .HasIndex(x => x.Time); builder .OwnsOne(expression) .Property(x => x.Adjustment) .HasDefaultValue(TimeSpan.Zero) .IsRequired(); builder .OwnsOne(expression) .Property(x => x.Total); builder .OwnsOne(expression) .HasIndex(x => x.Total); }
/// <summary> /// Maps <see cref="Distance"/> for the <typeparamref name="TRelatedEntity"/> owned by <typeparamref name="TEntity"/>. /// </summary> /// <typeparam name="TEntity">The entity type.</typeparam> /// <typeparam name="TRelatedEntity">The related entity type.</typeparam> /// <param name="builder">The <see cref="OwnedNavigationBuilder{TEntity,TRelatedEntity}"/>.</param> /// <param name="expression">The <see cref="Expression"/>.</param> public static void MapType <TEntity, TRelatedEntity>(this OwnedNavigationBuilder <TEntity, TRelatedEntity> builder, Expression <Func <TRelatedEntity, Distance> > expression) where TEntity : class where TRelatedEntity : class { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (expression == null) { throw new ArgumentNullException(nameof(expression)); } builder .OwnsOne(expression) .Property(x => x.Meters) .HasDefaultValue(0.00) .IsRequired(); builder .OwnsOne(expression) .HasIndex(x => x.Meters); builder .OwnsOne(expression) .Property(x => x.Miles) .HasDefaultValue(0.00); builder .OwnsOne(expression) .HasIndex(x => x.Miles); builder .OwnsOne(expression) .Property(x => x.Kilometers) .HasDefaultValue(0.00); builder .OwnsOne(expression) .HasIndex(x => x.Kilometers); }
public override TestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity> OwnsOne <TNewDependentEntity>( Expression <Func <TDependentEntity, TNewDependentEntity?> > navigationExpression) where TNewDependentEntity : class => Wrap( OwnedNavigationBuilder.OwnsOne <TNewDependentEntity>(navigationExpression.GetMemberAccess().GetSimpleMemberName()));
public override TestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity> OwnsOne <TNewDependentEntity>( Expression <Func <TDependentEntity, TNewDependentEntity> > navigationExpression) => Wrap( OwnedNavigationBuilder.OwnsOne <TNewDependentEntity>(navigationExpression?.GetPropertyAccess().GetSimpleMemberName()));
public override TestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity> OwnsOne <TNewDependentEntity>( Expression <Func <TDependentEntity, TNewDependentEntity> > navigationExpression) => new NonGenericStringTestOwnedNavigationBuilder <TDependentEntity, TNewDependentEntity>( OwnedNavigationBuilder.OwnsOne( typeof(TNewDependentEntity).FullName, navigationExpression.GetMemberAccess().GetSimpleMemberName()));