1
I created a map on Entity Framework via Fluent API, however when defining that a subpropriety should be ignored the exception is thrown below:
System.Argumentexception: 'The Expression 'x => x.PaisCompleto.Description' is not a Valid Property Expression. The Expression should represent a simple Property access: ’t => t. Myproperty'.'
Mapping
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, IDesignTimeDbContextFactory<ApplicationDbContext>
{
protected override void OnModelCreating(ModelBuilder builder)
{
builder.ApplyConfiguration(new EnderecoMap());
}
}
public class EnderecoMap : IEntityTypeConfiguration<Endereco>
{
public void Configure(EntityTypeBuilder<Endereco> builder)
{
builder
.OwnsOne(g => g.PaisCompleto, pais => {
pais
.Property(c => c.Codigo)
.HasColumnName("PaisCodigo")
.HasColumnType("varchar(5)");
});
builder.Ignore(x => x.PaisCompleto.Descricao);// Lança exceção
builder
.OwnsOne(g => g.CidadeCompleto, cidade => {
cidade
.Property(c => c.Codigo)
.HasColumnName("CidadeCodigo")
.HasColumnType("varchar(7)");
});
builder.Ignore(x => x.CidadeCompleto.Descricao);// Lança exceção
}
}
Mapped Entities
public abstract class Endereco
{
public DtoConceito<string> CidadeCompleto { get; set; }
public string CEP { get; set; }
}
public class DtoConceito<T>
{
public T Codigo { get; set; }
public string Descricao { get; set; }
}