动态表名称与实体框架

时间:2015-06-24 19:23:18

标签: c# sql-server asp.net-mvc entity-framework

我有许多具有相同模型结构的表,但其他表名与其他数据(在这种情况下将是~100个表)。我想使用Entity Framework在运行时动态切换表名(例如从路由获取名称表)。数据库中的表是由其他脚本动态添加和删除的。有这样的方法可以做到这样的良好表现吗?

db.Table("TableName")<SpecificModel>.Where(x => x.ID == ID)

2 个答案:

答案 0 :(得分:5)

你想这样做吗?

foreach (string tableName in new[] { "Table1", "Table2" })
{
   var result = dbContext.Database.SqlQuery<SpecificModel>(string.Format("SELECT * FROM {0} WHERE ID=@p0", tableName), 1).FirstOrDefault();
}

答案 1 :(得分:3)

我做了这样的事。 http://nodogmablog.bryanhogan.net/2013/08/entity-framework-in-an-dynamics-nav-navision-envirnoment/

我有相同的表,但他们有不同的名字。例如,客户表但具有不同公司的不同前缀。

[ACME$Customer] 
[SuperCorp$Customer]

我最终使用动态编译。这是一篇非常详细的博客文章,所以我不想在这里进入。