Como você obtém um odatamodelbuilder de API da Web para trabalhar com mapeamentos de API fluentes da EF

Eu criei um modelo de domínio bastante simples usando pocos. Mapeei-os para um contexto EF DB usandoEntityTypeConfiguration<TEnitityType> aulas. Tudo isso funciona bem.

Agora estou tentando criar um terminal do controlador OData V4 WebAPI usando umODataConventionModelBuilder e é aí que as coisas estão se desenrolando. Tudo funciona bem até encontrar uma associação que não é baseada em convenções. Mas não consigo encontrar uma maneira de obter oODataBuilder para pegar os mapeamentos do meuEntityTypeConfiguration<TEnitityType> aulas.

Isso deixa o meu com 2 opções desagradáveis

Decore meus adoráveis pocos limpos com atributos sujos.Mapeie manualmente novamente todos os mapeamentos não baseados em convenções usando o comandoODataBuilder

Não tenho certeza se os exemplos de código ajudarão, mas aqui estão eles, simplifiquei as entidades por questões de brevidade.

var builder = new ODataConventionModelBuilder();

            builder.EntitySet<Item>("Items");
            config.MapODataServiceRoute(
                routeName: "odata",
                routePrefix: "odata",
                model: builder.GetEdmModel(),
                batchHandler: new DefaultODataBatchHandler((GlobalConfiguration.DefaultServer)));

 public class Item
    {
        public Int32 Id { get; set; }

        public Int16 ItemTypeId { get; set; }                   

        public virtual ItemType Type { get; set; }
        public virtual ICollection<ItemVersion> Versions { get; set; }
        public virtual ICollection<ItemTag> Tags { get; set; }     
    }

O problema ocorre quando encontra a coleção ItemTags, aqui está uma ItemTag:

public class ItemTag
    {
        public Int32 ItemId { get; set; }

        public string Tag { get; set; }

        public Item Item { get; set; }
    }

O que você pode ver não é baseado em convenções e eu tenho uma classe de configuração para a seguinte:

public class ItemTagConfiguration : EntityTypeConfiguration<ItemTag>
    {
        public ItemTagConfiguration()
        {
            HasKey(x => new {x.ItemId, x.Tag});

            HasRequired(x => x.Item)
                .WithMany(y => y.Tags)
                .HasForeignKey(x => x.ItemId);

        }
    }

Alguém sabe de uma maneira que eu possa usar essesEntityTypeConfiguration arquivos com um ODataBuilder ou API da web?

EDITAR

Se achadoesta página o que parece indicar que é possível com o EF 6 que estou usando. O que eu quero fazer é isso

ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Dbf>("Dbfs");
//            modelBuilder.Configurations.Add(new DbfMap());  <---- NO GOOD - Needs Class from DBContext we only have a model builder :(
Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);

mas o construtor não possui uma propriedade Configurações.

questionAnswers(1)

yourAnswerToTheQuestion