使用Entity Framwork生成的代码时,是否可以选择带字符串的表?
示例:
using (var db = new Model1())
{
db.Database.Connection.ConnectionString = CreateConnectionString();
var res = from a in db.R1
select a;
foreach (var item in res)
{...}
}
但我想要的就是
using (var db = new Model1())
{
String tablename = "R1";
db.Database.Connection.ConnectionString = CreateConnectionString();
var res = from a in db.tablename
select a;
foreach (var item in res)
{...}
}
我需要在名为R1到R12的多个表上进行选择,它们看起来几乎相同。
我可以使用直接SQL查询解决它,但我想尽可能多地使用Entity Framework。
Entity Framework inline SQL dynamically select table name中的帖子几乎是正确的,但我想选择所有列,并且最好选择正确的类型。
还是我错了路?我应该使用除EF以外的其他东西吗?
任何帮助都会得到预防!
答案 0 :(得分:1)
您可以使用SqlQuery
:
var sql = string.Format("SELECT * FROM [{0}]", tablename);
var query = db.Database.SqlQuery<R1>(sql);
如果所有表R1-R2具有相同的结构(属性及其类型),它可以工作。