Как выбрать таблицу базы данных для обновления druing runtime - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь обновить разные таблицы в моей базе данных в зависимости от того, какой объект FactoryBuilder возвращает в моем коде. Я хочу использовать InstrumentFactory, который дает мне объект / инструмент во время выполнения, с которым я затем выполняю некоторые операции (обновление информации)

var tmpInstrument = InstrumentFactory.MakeInstrument(nameOfTable);
//old code was.....  var tmpInstrument = new SuperTable();

Однако, когда я позже хочу обновить свою БД, я не знаю как кодировать его как объект с помощью InstrumentFactory, устанавливается во время выполнения в зависимости от "nameOfTable". Я хочу обновить разные таблицы в зависимости от того, какой объект может быть tmpInstrument.

                    if (tmpInstrument is SuperTable)
                    {
                       _context.SupterTable.Add((ObjectCast)tmpInstrument);

                       _context.SaveChanges();

                    }

Есть ли хороший способ сказать update _context.ThisParticularTable или _context.AnotherObjectTable в зависимости от того, какой объект является tmpSplitInfo И также удаление оператора if и приведение.

Спасибо

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Похоже, вы пытаетесь определить, имеет ли tmpSplitInfo тип SuperTable здесь, поэтому я предлагаю вам проверить ключевое слово is :

if(tmpSplitinfo is SuperTable)
{
   _context.SuperTable.Add(tmpInstrument);
   _context.SaveChanges();
}
0 голосов
/ 18 марта 2020

Это то, что я искал (спасибо, Элиас).

_context.Set(tmpInstrument.GetType()).Add(tmpInstrument);
...