По этой ссылке Возможно ли применить динамическое отображение только с 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");
});
}
}
} `
это только часть примера файла