自定义查询/报告返回类型

时间:2013-01-16 11:26:44

标签: asp.net-mvc entity-framework

我目前正在使用EF和MVC构建自定义报表生成器。我的查询构建器构建了SQL,然后我可以使用dbSet.SqlQuery()对数据库运行此查询。

但是,用户可以选择他们希望返回的字段,可能来自不同的表格。

因此,我不确定哪种类型的'将结果返回为。如果只是来自“'客户”的字段。选择了表格,我可以轻松返回“客户”列表。

我希望这是有道理的。谁能在这里给我任何指示?

1 个答案:

答案 0 :(得分:0)

嗯......不确定你会找到一个完美的解决方案。问题是您需要在运行时定义列。最初我以为你可以尝试使用匿名类型,但是你不能在方法签名中使用匿名类型。关于动态物体的Here is an article,正如丹尼斯所建议的那样,但要把它与你的想法联系在一起,就在我头上。长话短说我不认为有一个简单的答案。

这是一个通过查看this MSDN Artical如何针对您的DBContext执行泛型查询而创建的示例。您可能可以使用它,但是您无法保留数据类型(这可能与您的报告无关):

using (var context = new BloggingContext())
{
    //Here blogNames will be a List<string[]>
    var blogNames = context.Database.SqlQuery<string[]>(
                       "SELECT Name, YourProperty FROM dbo.Blogs").ToList();
}