【发布时间】:2015-06-24 17:21:21
【问题描述】:
我正在使用 Entity Framework 6 和 ASP.Net MVC 5。当使用数据库上下文对象时,有没有办法使用变量作为表名,而无需手动编写查询?
例如:
var tableName = "NameOfTable";
result = context.tableName.Find(...);
我知道特定代码不起作用,因为 tableName 没有在上下文中定义,但是有没有办法达到预期的效果?
这个网站上有一些类似的问题,但他们从来没有真正解决过问题,而且是针对早期版本的实体框架,所以我希望现在有答案。
【问题讨论】:
-
我不知道这个问题的答案,但是为您的实体创建部分类并支持表名属性可以解决您的问题吗?
-
您为什么要这样做?对于这种情况,我想不出一个有效的用例。或许您可以告诉我们您最终想要达到的目标是什么?
-
我正在尝试优化我的代码。我有几行类似的代码,唯一的区别是表的名称。我希望能够将这一行放入一个函数中并将表的名称作为参数传递。
-
所以你在谈论泛型而不是动态表名。比如你可以
context.Set<Model>().Find(...)
标签: asp.net-mvc linq entity-framework-6