В «ADO.NET Entity Data Model» я создал модель «база данных сначала» из нескольких таблиц. Все таблицы имеют поля «code» и «name» и различные другие поля. Затем я создал объект «context». Теперь я хочу создать переменную «src_table», которая будет назначена context.table1 или context.table2 и т. Д. Условно, а затем работать с свойствами src_table.code и src_table.name.Определить тип переменной условно C#
код, как это работает отлично:
var context = new postgresEntities();
var src_table = context.table1;
foreach (var src_table_rec in src_table)
{
Console.WriteLine("Code: {0}, Name: {1}", src_table_rec.code, src_table_rec.name);
}
Или это:
var context = new postgresEntities();
var src_table = context.table2;
foreach (var src_table_rec in src_table)
{
Console.WriteLine("Code: {0}, Name: {1}", src_table_rec.code, src_table_rec.name);
}
Но я понятия не имею, как дать возможность выбрать таблицу:
var context = new postgresEntities();
Console.WriteLine("Enter the table number:");
string response = Console.ReadLine();
int n;
bool isNumeric = int.TryParse(response, out n);
if (isNumeric && n==1)
{
var src_table = context.table1;
}
else if (isNumeric && n==2)
{
var src_table = context.table2;
}
else
{
Console.WriteLine("Table number {0} doesn't exist.", n);
}
foreach (var src_table_rec in src_table)
{
Console.WriteLine("Code: {0}, Name: {1}", src_table_rec.code, src_table_rec.name);
}
Есть ли способ сделать это?
Вы можете использовать 'тип dynamic', но я не уверен, что это вы пытаетесь достичь здесь? – DavidG
Не знаю, что вы пытаетесь сделать, но вам нужно объявить src_table вне вашего if – artm
. Вы пытаетесь ссылаться на переменную за пределами ее области действия, которая просто не работает. То, что я думаю, что вы пытаетесь сделать, достигается посредством наследования, интерфейсов, отражения или 'dynamic', а не' var'. – svinja