我需要构建大约30个不同的管理页面来添加/编辑/删除30个不同表中的记录.我显然可以花时间创建30个独特的页面来查询每个表,但我很好奇是否有办法简单地创建一个查询单个动态linq查询的动态页面.然后,此linq查询将返回指定表中的所有字段和记录.
我已经看到了与此类似的动态linq示例(http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query -library.aspx),但仍然需要将表名硬编码到查询中.我想做一个类似于这的选择,在那里我传递表的名称(即"产品","订单"等),然后以某种方式查询该表:
private List<tableName> MyDynamicQuery(string tableName)
{
IEnumerable<tableName> dynamicList;
using (MyEntities db = _conn.GetContext())
{
dynamicList = (from q in db.<tableName>
select q).ToList();
}
return dynamicList;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情甚至可能吗?
谢谢
为什么不传入选择器而不是使用表名呢?它看起来像这样:
private List<T> GetData<T>(Func<MyEntities, IEnumerable<T>> selector)
{
using (MyEntities db = _conn.GetContext())
{
return selector(db).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它:
var orders = GetData(db => db.Orders);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |