【发布时间】:2014-10-17 08:21:27
【问题描述】:
在“ADO.NET 实体数据模型”中,我从多个表中创建了一个“数据库优先”模型。 所有表都有“代码”和“名称”字段以及不同的其他字段集。 然后我创建了一个“上下文”对象。 现在我想创建一个变量“src_table”,它将有条件地分配给 context.table1 或 context.table2 等,然后使用 src_table.code 和 src_table.name 属性。
这样的代码可以正常工作:
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类型,但我不确定您要在这里实现什么? -
不知道你想做什么,但你需要在你的 if 之外声明 src_table
-
您正在尝试引用其范围之外的变量,这根本不起作用。我认为您正在尝试做的是通过继承、接口、反射或
dynamic,而不是var。
标签: c# var implicit-typing