C# 从字符串中获取实体

C# 从字符串中获取实体,c#,entity-framework,C#,Entity Framework,我想从字符串中获取实体。事实上,我不知道我用的词是否正确,但如果我给你们举个例子,也许你们会明白我的意思 例如,您有博客上下文和成员、帖子、评论等模型(类)。 客户端将以字符串形式向您发送类的名称。但在代码隐藏中,您需要将该字符串转换为实际类,以便可以使用ef查询进行筛选 db.Post.ToList() or db.Post.Where(c => c.Title == "xxx"); 但是这个“帖子”是字符串。所以我需要转换它 还有一些人使用switch-case样式的函数,但我想编

我想从字符串中获取实体。事实上,我不知道我用的词是否正确,但如果我给你们举个例子,也许你们会明白我的意思

例如,您有博客上下文和成员、帖子、评论等模型(类)。 客户端将以字符串形式向您发送类的名称。但在代码隐藏中,您需要将该字符串转换为实际类,以便可以使用ef查询进行筛选

db.Post.ToList() or db.Post.Where(c => c.Title == "xxx"); 
但是这个“帖子”是字符串。所以我需要转换它

还有一些人使用switch-case样式的函数,但我想编写一个通用函数。因此,即使添加或删除表,我也不必更改代码

我使用这段代码来获取dbset,但是我不能使用任何对它的查询

var type = Assembly.GetExecutingAssembly()
          .GetTypes()
          .FirstOrDefault(t => t.Name == name);

return dbSet = context.Set(type);

我想你在这里的意思是:为什么你不能询问这个问题?。根据文档,它返回一个
IQueryable
object,我强烈建议不要这样做,并用路由或其他不涉及反射的方式解决您的问题。否则,您在维护解决方案时会遇到很多问题。@Tyress对此表示感谢,实际上它解决了我的另一个问题,但并没有解决这个问题。@SantiagoHernández当我使用我给出的有问题的代码时,我无法联系到类成员,它只是使用了ToListSync()方法,然后我可以使用查询,但第一个给了我所有数据库行,可以是数百万行。我也不能将dbset转换为dbset。我想你在这里的意思是:为什么不能查询?。根据文档,它返回一个
IQueryable
object,我强烈建议不要这样做,并用路由或其他不涉及反射的方式解决您的问题。否则,您在维护解决方案时会遇到很多问题。@Tyress对此表示感谢,实际上它解决了我的另一个问题,但并没有解决这个问题。@SantiagoHernández当我使用我给出的有问题的代码时,我无法联系到类成员,它只是使用了ToListSync()方法,然后我可以使用查询,但第一个给了我所有数据库行,可以是数百万行。我也无法将dbset转换为dbset。