我需要使用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。
我该怎么办呢?
非常感谢, 保罗
答案 0 :(得分:1)
db.MappingSchema.GetFluentMappingBuilder().Entity<MyPoco>().HasTableName(...)
答案 1 :(得分:0)
给定DataContext上下文和字符串tableName,您只需说:
var table =(MyPoco)context.GetType() .GetProperty(表名) .GetValue(context,null);
var q = from c select in c;
答案 2 :(得分:0)
var ms = new MappingSchema();
var mb = ms.GetFluentMappingBuilder();
mb
.Entity<MyPoco>()
.SetTable(attr => attr.Name = userEnteredTableName);