entity-framework - 使用 Entity Framework 的报告服务

标签 entity-framework reporting-services ado.net datatable dataset

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

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

  • 或者我应该手动从 Entity Framework 返回的集合中创建数据表/数据集。

    作为记录,我通过从 Entity Framework 执行存储过程来获取结果集。

    最佳答案

    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

    关于entity-framework - 使用 Entity Framework 的报告服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615862/

    相关文章:

    .net - EntityConnection 和打开的 SqlConnection

    .net - 枚举应该位于 MVC 项目结构中的什么位置?

    visual-studio-2008 - 如何让 Visual Studio 2008 在不安装 SQL Business Intelligence Development Studio 2005 的情况下编辑 SSRS 2005 报表项目?

    C# ADO.NET - 找不到存储过程

    ado.net - 如何在传递给 DataTable Select() 的字符串中包含撇号?

    c# - 我们需要使用 SqlCommand 还是仅用于 SqlConnection 和 SqlDataReader

    c# - TransactionScope优先级(摆脱死锁情况)

    asp.net-mvc - 如何优雅地重新附加 Entity Framework 5 POCO 结构并保存它?

    reporting-services - 除以零时,如何消除 SSRS 表达式上的#error?

    sql - 对于 Visual Studio 2008 中的 SSRS,如何使变量接受多个值以及单个值?