C# 数据库表名称未知时的LINQ2B POCO

C# 数据库表名称未知时的LINQ2B POCO,c#,sql,.net,linq2db,C#,Sql,.net,Linq2db,我需要使用Linq2DB从不同的数据库中提取数据。在本例中,假设它是SQL2012 我创建了我的POCO类,如下所示 public class MyPoco { public string Name { get; set; } public int Age { get; set; } } 我使用linq2db连接到数据库并获取表,如下所示 var q = from c in db.GetTable<MyPoco>() select c; var q=from c

我需要使用Linq2DB从不同的数据库中提取数据。在本例中,假设它是SQL2012

我创建了我的POCO类,如下所示

public class MyPoco
{
    public string Name { get; set; }
    public int Age { get; set; }
}
我使用linq2db连接到数据库并获取表,如下所示

var q = from c in db.GetTable<MyPoco>() select c;
var q=from c in db.GetTable()选择c;
我遇到的问题是,尽管POCO在成员方面是正确的,但用户在创建数据库时可以指定不同的名称(MyPoco除外)。因此,我需要做的是询问用户表的名称,然后在GetTable调用中使用该名称,并将结果映射到我的POCO

请问我怎么做

多谢各位,
Paul

给定DataContext上下文和字符串tableName,您可以说:

var table=(MyPoco)context.GetType() .GetProperty(表名) .GetValue(上下文,null)


var q=从表中的c中选择c

给定DataContext上下文和字符串tableName,您可以说:

var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
  .Entity<MyPoco>()
  .SetTable(attr => attr.Name = userEnteredTableName);
var table=(MyPoco)context.GetType() .GetProperty(表名) .GetValue(上下文,null)


var q=从表中的c中选择c

给定DataContext上下文和字符串tableName,您可以说:

var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
  .Entity<MyPoco>()
  .SetTable(attr => attr.Name = userEnteredTableName);
var table=(MyPoco)context.GetType() .GetProperty(表名) .GetValue(上下文,null)


var q=从表中的c中选择c

给定DataContext上下文和字符串tableName,您可以说:

var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
  .Entity<MyPoco>()
  .SetTable(attr => attr.Name = userEnteredTableName);
var table=(MyPoco)context.GetType() .GetProperty(表名) .GetValue(上下文,null)

var q=从表中的c中选择c

var ms=new-MappingSchema();
var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
  .Entity<MyPoco>()
  .SetTable(attr => attr.Name = userEnteredTableName);
var mb=ms.GetFluentMappingBuilder(); 兆字节 .实体() .setable(attr=>attr.Name=userEnteredTableName);
var ms=new-MappingSchema();
var mb=ms.GetFluentMappingBuilder();
兆字节
.实体()
.setable(attr=>attr.Name=userEnteredTableName);
var ms=new-MappingSchema();
var mb=ms.GetFluentMappingBuilder();
兆字节
.实体()
.setable(attr=>attr.Name=userEnteredTableName);
var ms=new-MappingSchema();
var mb=ms.GetFluentMappingBuilder();
兆字节
.实体()
.setable(attr=>attr.Name=userEnteredTableName);
db.MappingSchema.GetFluentMappingBuilder().Entity().HasTableName(…)
db.MappingSchema.GetFluentMappingBuilder().Entity().HasTableName(…)
db.MappingSchema.GetFluentMappingBuilder().Entity().HasTableName(…)
db.MappingSchema.GetFluentMappingBuilder().Entity().HasTableName(…)

Hi Jaco,感谢您的反馈。如果我尝试以下代码,它会抱怨表是可枚举的-select语句无法工作。var dataContext=new dataContext();变量表=(EventsTable)dataContext.GetType().GetProperty(“EventsTable”).GetValue(dataContext,null);嗨,杰科,谢谢你的反馈。如果我尝试以下代码,它会抱怨表是可枚举的-select语句无法工作。var dataContext=new dataContext();变量表=(EventsTable)dataContext.GetType().GetProperty(“EventsTable”).GetValue(dataContext,null);嗨,杰科,谢谢你的反馈。如果我尝试以下代码,它会抱怨表是可枚举的-select语句无法工作。var dataContext=new dataContext();变量表=(EventsTable)dataContext.GetType().GetProperty(“EventsTable”).GetValue(dataContext,null);嗨,杰科,谢谢你的反馈。如果我尝试以下代码,它会抱怨表是可枚举的-select语句无法工作。var dataContext=new dataContext();变量表=(EventsTable)dataContext.GetType().GetProperty(“EventsTable”).GetValue(dataContext,null);嗨,爬虫,我试过上面的方法,但我得到一个错误,说明可设置方法是私有的,不能在上面使用嗨,爬虫,我试过上面的方法,但我得到一个错误,说明可设置方法是私有的,不能在上面使用嗨,爬虫,我试过上面的方法,但是我得到了一个错误,说明可设置方法是私有的,不能用于爬虫类,我尝试了上面的方法,但是我得到了一个错误,说明可设置方法是私有的,不能用于爬虫类