实体框架自定义SQL查询返回泛型类型

Tre*_*ent 2 sql entity-framework xtragrid

我正在尝试创建一个通用的报告系统,以便我可以动态地向我的程序添加报告,而不是每次我必须添加报告时都发布新版本的程序.
目前,我已部分工作;
我的自定义报告SQL与报告名称一起存储在表中.报告名称用于用户单击的按钮,当他们单击按钮时,我希望SQL执行并绑定到gridview,因此它尽可能通用.

这似乎是麻烦来临的地方.获取SQL并执行它很好,但是将它绑定到gridview似乎是不可能的,我只得到一个名为Column的列,它显示1行,其值为System.Object.

我认为问题是因为我从多个表中返回数据,即

SELECT c.CertificateName, e.EntityName, 
       ce.CertificateDate, ce.CertificateExpiry, ce.CertificateNumber 
FROM FCERTSTest.dbo.CertificateEntries ce 
INNER JOIN FCERTSTest.dbo.Certificates c 
ON c.CertificateID = ce.Certificate_ID 
INNER JOIN FCERTSTest.dbo.Entities e 
ON e.EntityID = ce.Entity_ID 
WHERE FirstNotificationSent = '1'
Run Code Online (Sandbox Code Playgroud)

我正在使用

using (DBContainer db = new DBContainer())
{
    grid.DataSource = db.Database.SqlQuery<dynamic>(SQLCommand).ToList();
}
Run Code Online (Sandbox Code Playgroud)

我试着更换dynamicobject,并得到了同样的问题.我明白,最好的解决办法是有一个自定义类和替换dynamic与自定义类,但后来我失去了它的好处是通用为不同的报表可能不会返回相同的结果,我需要一个新的自定义类...

Lad*_*nka 5

使用SqlDataAdapterDataSet.EF不适用于"动态查询",其中您没有结果集的特殊类型.