我在ASP.NET MVC项目中工作,我遇到了这种情况:我有3个页面 - 产品,订单,用户。在每个页面中,我都有一个链接调用相同的ActionResult,区别仅在于根据我所在的页面传递的参数。例如:
public ActionResult(string typeOfPage)
{
if (typeOfPage == "User")
{
//do something
}
else if (typeOfPage == "Product")
{
//do other things
}
}
我现在要做的是根据“typeOfPage”值从DB获取所有数据。当然,在 dbml 中,所有实体都与typeOfPage值(用户,产品,订单)具有相同的名称。
我正在尝试避免为每个页面执行特定的IQueryable,具体取决于typeOfPage值。
有没有办法获取此typeOfPage字符串值,获取具有相同名称的实体并使用IQueryable从此实体获取所有数据?
非常感谢!!!
答案 0 :(得分:2)
请参阅下面的代码:
using System; using System.Data.Linq; using System.Linq;namespace MvcApplication1.Models { public class Repository : IRepository where TModel : class, new() { public DataContext dc; public string pk { get; set; } public Repository(DataContext dc) { this.dc = dc; }
#region IRepository<TKeyType,TModel> public IQueryable<TModel> getAllEntries() { return dc.GetTable<TModel>(); } #endregion }
}
{{1}}
using System; using System.Data.Linq; using System.Linq; namespace MvcApplication1.Models { public class Repository : IRepository where TModel : class, new() { public DataContext dc; public string pk { get; set; } public Repository(DataContext dc) { this.dc = dc; } #region IRepository public IQueryable getAllEntries() { return dc.GetTable(); } #endregion } }
有关更多信息,请参阅codeplex项目MVCCRUD,这正是您想要的。祝你好运!