繁体   English   中英

Entity Framework 根据输入参数动态查询表名

[英]Entity Framework query table name dynamically based on input parameter

我一直在一个项目中工作,该项目使用实体框架作为 ORM 数据模型来连接到 SQL 数据库并检索数据。

现在用于检索数据的基本查询是这样的

ProjectDataContext dataContext = new ProjectDataContext();   

var result = (from project in dataContext.Projects
              select project).ToList();

或者在 lambda 中

List<Project> lstprojects = dataContext.Projects.Take(10);

现在我想根据一些输入参数动态传递表名。 我怎样才能做到这一点?

我目前的做法有点乱。

if(tableName = "A")
{
     List<A> lstOfA = dataContext.A.Take(10);
}
else if(tableName = "B")
{
     List<B> lstOfB = dataContext.B.Take(10);
}

等等...

我的问题是,是否有一种简洁干净的方法来做到这一点,而无需写这么多,因为我知道这可能会导致将来出现性能问题。

谢谢

好的,经过一些试验和错误,我已经能够做到这样 -

var type = Type.GetType("A");
context.Set(type).Load();
var result = context.Set(type).Local.Cast<object>().ToList();

希望它有帮助。`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM