使用实体框架的报告服务

Posted

技术标签:

【中文标题】使用实体框架的报告服务【英文标题】:Reporting Services using Entity Framework 【发布时间】:2013-09-08 01:55:04 【问题描述】:

我有使用 ado.net 数据集开发报告 (s-s-rS) 的经验。现在我正在开发一个不使用 ADO.net 而是使用实体框架但实体框架不返回数据表或数据集的应用程序。我想知道

    有没有办法在报告服务中使用集合或实体框架返回的自定义对象? 实体框架以某种方式返回数据表或数据集。

或者我应该从实体框架返回的集合中手动创建数据表/数据集。

作为记录,我通过从实体框架执行存储过程来获取结果集。

【问题讨论】:

你看过这个问题的答案了吗? ***.com/questions/15146425/… 【参考方案1】:
public void getMyReportData() 
 
     using (myEntityDataModel v = new myEntityDataModel()) 
     

         var reportQuery = (from r in v.myTable
                               select new
                               
                                   l.ID,
                                   l.LeaveApplicationDate,
                                   l.EmployeeNumber,
                                   l.EmployeeName,
                                   l.StartDate,
                                   l.Col1,
                                   l.Col2,
                                   .......,
                                   .......,
                                   l.Address
                               ).ToList();

        reportViewer1.LocalReport.DataSources.Clear();
        ReportDataSource datasource = new ReportDataSource("nameOfReportDataset", reportQuery);
        reportViewer1.LocalReport.DataSources.Add(datasource);

        Stream rpt = loadEmbededReportDefinition("Report1.rdlc");
        reportViewer1.LocalReport.LoadReportDefinition(rpt);
        reportViewer1.RefreshReport();

        //Another way of setting the reportViewer report source

        string exeFolder = Path.GetDirectoryName(Application.ExecutablePath);
        string reportPath = Path.Combine(exeFolder, @"rdlcReports\Report1.rdlc");
        reportViewer1.LocalReport.ReportPath = reportPath;

        reportParameter p = new ReportParameter("DeptID", deptID.ToString());
        reportViewer1.LocalReport.SetParameters(new[]  p );

    





public static Stream loadEmbededReportDefinition(string reportName)
    
        Assembly _assembly = Assembly.GetExecutingAssembly();
        Stream _reportStream = _assembly.GetManifestResourceStream("ProjectNamespace.rdlcReportsFolder." + reportName);

        return _reportStream;
    

原文来源:Creating Reports in ASP.Net with Entity Framework

【讨论】:

以上是关于使用实体框架的报告服务的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助了解实体框架

使用实体框架从存储过程中获取数据时的参数问题

WCF 数据服务或实体框架

在我的wcf服务中用实体框架实现的WCF服务的性能?

实体框架数据未使用 Wcf 服务保存或更新

实体框架适用于本地服务器但不适用于远程