我有许多具有相同模型结构的表,但其他表名与其他数据(在这种情况下将是~100个表)。我想使用Entity Framework在运行时动态切换表名(例如从路由获取名称表)。数据库中的表是由其他脚本动态添加和删除的。有这样的方法可以做到这样的良好表现吗?
db.Table("TableName")<SpecificModel>.Where(x => x.ID == ID)
答案 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]
我最终使用动态编译。这是一篇非常详细的博客文章,所以我不想在这里进入。