C# 来自SQL查询的未知返回类型?
我有一个WPF应用程序,它具有从数据库表中提取SQL查询的方法:C# 来自SQL查询的未知返回类型?,c#,sql-server,wpf,entity-framework,C#,Sql Server,Wpf,Entity Framework,我有一个WPF应用程序,它具有从数据库表中提取SQL查询的方法: public List<AwardsChartParameters> GetAwardsChartParameters(string country, string articleType) { var query = (from a in _Context.tbQueryTable where a.Art
public List<AwardsChartParameters> GetAwardsChartParameters(string country, string articleType)
{
var query = (from a in _Context.tbQueryTable
where a.ArticleType == ArticleType
select a.ColSelection + " " + a.FromTable + " " + a.whereclause + " " + a.orderBY);
string queryResult = query.FirstOrDefault().ToString();
return ((IObjectContextAdapter)_Context).ObjectContext.ExecuteStoreQuery<AwardsChartParameters>(queryResult).ToList();
}
表中的这个特定查询将返回一个string&int列表,因此我可以将结果拉入我的列表
&在我的UI中绘制它们。这样,随着表的增长,我需要一个类来保存表中所有可能的结果集
是否有任何方法可以创建动态列表或类,该列表或类在运行时根据查询的结果集生成。例如,用户的第一个查询可能返回字符串列表,第二个查询返回字符串列表&整数
因此,在代码的其他部分中,我使用实体框架将实体映射到sql Server db中的具体类,但是使用类似于下面的表中查询的结果集,我对结果结构有着具体的依赖性&我开始嗅到不好的代码……如果您将查询本身移动到一个带有几个参数的存储过程中,而不是通过编程生成查询,我觉得它将消除代码气味。假设这是可能的(您可能需要在SP中使用一些动态SQL),它将逻辑封装在一个地方,EF甚至会为您生成所需的类:
public class AwardsChartParameters
{
public string operator_int_name { get; set; }
public int countAll { get; set; }
}