У меня в базу данных заливается множество таблиц с одинаковой схемой , например
f170101 , f170102 , т.е каждый день появляются новые. Вопрос такой, как в Entity Framework Можно подменять имя таблицы выполняя .ToList() чтобы данные подгружались из определенной таблицы
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ORMAdisCalls>().ToTable(TableName, schema: "statistica_call");
}
Как динамически возможно сделать такую подмену , в запущенной программе всегда возвращаются данные с той таблицы , которая была передана методу выше
Можно использовать разные контексты для выполнения операций над таблицами.
Создадим контекст, в конструктор которого будем передавать наименование таблицы. Поскольку контекст кэширует DataModel, нам потребуется придумать свой механизм определения ключа, по которому будет выполняться кэширование модели. Для этого создается класс DynamicModelCacheKeyFactory :
class MyDbContext : DbContext
{
public MyDbContext(string tableName)
{
TableName = tableName;
}
public string TableName { get; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ORMAdisCalls>().ToTable(TableName, schema: "statistica_call");
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.ReplaceService<IModelCacheKeyFactory, DynamicModelCacheKeyFactory>();
}
}
public class DynamicModelCacheKeyFactory : IModelCacheKeyFactory
{
public object Create(DbContext context)
{
if (context is MyDbContext dynamicContext)
{
return (context.GetType(), dynamicContext.TableName);
}
return context.GetType();
}
}
Добавим метод, который создает экземпляр контекста и возвращает нужные нам данные:
List<ORMAdisCalls> GetORMAdisCalls(string tableName)
{
using (var context = new MyDbContext(tableName))
{
return context.Set<ORMAdisCalls>().ToList();
}
}
Получим содержимое из разных таблиц в одну и ту же модель:
void Foo()
{
var table1Calls = GetORMAdisCalls("f170101");
var table2Calls = GetORMAdisCalls("f170102");
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Печатаю содержимое FlowDocumentReader, который содержит текстовые данные и таблицу datagridКусок разметки с таблицей:
Мне нужно сгрупировать коллекцию по нескольким свойствам, я делаю так:
я пишу простенькую игру на Unity и работаю в 2d измерении, но я хотел бы реализовать переход между 2d и 3d: Игрок в 2d режиме входит в портал и резко...
Всех привествую, появился вопросНе могу при нажатии кнопки Clear не стираются позиции чексбоксов и текстовых полей