Сначала база данных EF с ядром odata - PullRequest
0 голосов
/ 20 февраля 2019

По этой ссылке Возможно ли применить динамическое отображение только с datacontext из db?без переопределения всех наборов сущностей вручную, например EdmEntitySethools = container.AddEntitySet ("Schools", student);Я хотел бы сделать запрос с несколькими строками соединения с источником данных. Как получить EDM напрямую из контекста Entityfile. Мой принцип заключается в том, чтобы при создании модели, сгенерированной с помощью Database EF, иметь несколько строк соединения, связанных со многими контекстами данных, и для каждой модели я хотел бы отобразить запрос odata * 1001.*

пространство имен KmCore.Model {открытый частичный класс DataContext: DbContext {public DataContext () {}

    public DataContext(DbContextOptions<DataContext> options)
        : base(options)
    {
    }

    public virtual DbSet<V_KM_MO_MENU> V_KM_MO_MENU { get; set; }
    public virtual DbSet<V_KM_WEB_MENU_UTILISATEURS> V_KM_WEB_MENU_UTILISATEURS { get; set; }


    //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    //{
    //    if (!optionsBuilder.IsConfigured)
    //    {
    //        optionsBuilder.UseSqlServer("name=SI_KM");
    //    }
    //}

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");

        var configuration = builder.Build();
        var connectionString = configuration.GetConnectionString("SI_KM");
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseSqlServer(
                connectionString

                );
        }
    }

    public virtual DbSet<AR_ABERRANTES> AR_ABERRANTES { get; set; }
    public virtual DbSet<AR_DJU_CHAUFFAGISTE_A> AR_DJU_CHAUFFAGISTE_A { get; set; }
    public virtual DbSet<AR_DJU_CHAUFFAGISTE_S> AR_DJU_CHAUFFAGISTE_S { get; set; }
    public virtual DbSet<AR_DJU_CLIMATICIEN_A> AR_DJU_CLIMATICIEN_A { get; set; }
    public virtual DbSet<AR_DJU_CLIMATICIEN_S> AR_DJU_CLIMATICIEN_S { get; set; }


        modelBuilder.Entity<TST_GENERATEUR_UNQKEY>(entity =>
        {
            entity.HasKey(e => new { e.TST_ID1, e.TST_ID2 });

            entity.Property(e => e.TST_ID1)
                .HasMaxLength(2)
                .IsUnicode(false);

            entity.Property(e => e.TST_ID2)
                .HasMaxLength(10)
                .IsUnicode(false);

            entity.Property(e => e.TST_BINARY).HasMaxLength(50);

            entity.Property(e => e.TST_BINARY_NN)
                .IsRequired()
                .HasMaxLength(50);

            entity.Property(e => e.TST_CHAR)
                .HasMaxLength(10)
                .IsUnicode(false);

            entity.Property(e => e.TST_CHAR_NN)
                .IsRequired()
                .HasMaxLength(10)
                .IsUnicode(false);


                .IsRequired()
                .HasMaxLength(50);

            entity.Property(e => e.TST_SMALLDATETIME).HasColumnType("smalldatetime");

            entity.Property(e => e.TST_SMALLDATETIME_NN).HasColumnType("smalldatetime");

            entity.Property(e => e.TST_SMALLMONEY).HasColumnType("smallmoney");

            entity.Property(e => e.TST_SMALLMONEY_NN).HasColumnType("smallmoney");

            entity.Property(e => e.TST_SQLVARIANT).HasColumnType("sql_variant");

            entity.Property(e => e.TST_SQLVARIANT_NN)
                .IsRequired()
                .HasColumnType("sql_variant");

            entity.Property(e => e.TST_TEXT).HasColumnType("text");

            entity.Property(e => e.TST_TEXT_NN)
                .IsRequired()
                .HasColumnType("text");

            entity.Property(e => e.TST_TIMESTAMP_NN).IsRowVersion();

            entity.Property(e => e.TST_VARBINARY).HasMaxLength(50);

            entity.Property(e => e.TST_VARBINARYMAX_NN).IsRequired();

            entity.Property(e => e.TST_VARBINARY_NN)
                .IsRequired()
                .HasMaxLength(50);

            entity.Property(e => e.TST_VARCHAR)
                .HasMaxLength(50)
                .IsUnicode(false);

            entity.Property(e => e.TST_VARCHARMAX).IsUnicode(false);

            entity.Property(e => e.TST_VARCHARMAX_NN)
                .IsRequired()
                .IsUnicode(false);

            entity.Property(e => e.TST_VARCHAR_NN)
                .IsRequired()
                .HasMaxLength(50)
                .IsUnicode(false);

            entity.Property(e => e.TST_XML).HasColumnType("xml");

            entity.Property(e => e.TST_XML_NN)
                .IsRequired()
                .HasColumnType("xml");
        });
    }
}

} `

это только часть примера файла

...