【问题标题】:Entity Framework Select table using a string使用字符串的实体框架选择表
【发布时间】:2015-03-04 12:36:22
【问题描述】:

使用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 inline SQL dynamically select table name 中的帖子几乎是正确的,但我想选择所有列并最好找回正确的类型。

还是我走错了路?我应该使用 EF 以外的其他东西吗?

任何帮助将不胜感激!

【问题讨论】:

标签: c# entity-framework


【解决方案1】:

你可以使用SqlQuery:

var sql = string.Format("SELECT * FROM [{0}]", tablename);
var query = db.Database.SqlQuery<R1>(sql);

如果您的所有表 R1--R2 具有相同的结构(属性及其类型),它可能会起作用。

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多