我有许多表需要使用 Linq 组合成一个结构
我需要处理许多具有相同结构但表名不同的表(跨越 20 年的财务数据)。我可以创建代码来动态访问各种表内容:
string tableName = "Trading.DataSources.Prices2017"; var results = DbContext.Set(Type.GetType(tableName));
但是,当我尝试使用 Cast 将一个表中的结果转换为公用表(具有相同表结构的价格)时:
var newResults = results.AsQueryable().Cast<Price>().ToList();
我收到以下错误:
“System.NotSupportedException:‘无法将类型‘Trading.DataSources.Prices2017’转换为类型‘Trading.DataSources.Price’。LINQ to Entities 仅支持转换 EDM 原语或枚举类型。”
我显然可以用我自己的转换方法进行这种转换。然而,这会导致同一代码块的多个版本以满足不同的表,并且每年,当我有一组新的价格数据时,我必须修改我的代码以适应新的一年的表名。
有没有办法动态地(或一般地)处理这个问题?
神不在的星期二
相关分类