我正在使用带有实体框架核心的.net core 2.1。
我的项目中定义了不同的模型/实体/类型。例如学生、班级、老师。
我正在获取这些模型的表数据以在我的缓存中设置。
此刻,我正在做这件事;
string[] tablesToBeCached = { "Student", "Class", "Teacher" };
foreach(var table in tablesToBeCached)
{
cache.Set(key, GetTableData(dbContext, table));
}
函数GetTableData()定义如下;
public IEnumerable<object> GetTableData(DBContext dbContext, string tableName)
{
switch (tableName)
{
case "Student":
return dbContext.Student;
case "Class":
return dbContext.Class;
case "Teacher":
return dbContext.Teacher;
default:
return null;
}
}
我希望这段代码既聪明又简短。
我尝试遵循,但没有成功; (错误是“x”是一个变量,但像类型一样使用)
List<object> entities = new List<object> { typeof(Student), typeof(Class), typeof(Teacher) };
entities.ForEach(x => GetTableData(x, dbContext));
public IEnumerable<object> GetTableData(object x, DBContext dbContext)
{
return dbContext.Set<x>();
}
有人可以帮忙吗?在 C# 中也可能吗?
慕码人8056858
慕田峪9158850
相关分类