0

我需要使用 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;

我遇到的问题是,虽然 POCO 在成员方面是正确的,但用户在创建数据库时可以指定不同的名称(MyPoco 除外)。所以,我需要做的是询问用户表的名称,然后在 GetTable 调用中使用它,并将结果映射到我的 POCO。

请问我该怎么做?

非常感谢,保罗

4

3 回答 3

2
db.MappingSchema.GetFluentMappingBuilder().Entity<MyPoco>().HasTableName(...)
于 2015-07-16T08:50:35.757 回答
1

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

var table = (MyPoco)context.GetType() .GetProperty(tableName) .GetValue(context, null);

var q = from c in table select c;

于 2015-03-20T17:27:52.690 回答
0
var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
  .Entity<MyPoco>()
  .SetTable(attr => attr.Name = userEnteredTableName);
于 2015-04-18T18:00:54.553 回答