C# ASP.NET ReportViewer和Linq To Sql问题

C# ASP.NET ReportViewer和Linq To Sql问题,c#,.net,asp.net,linq,reporting-services,C#,.net,Asp.net,Linq,Reporting Services,asp.net ReportViewer控件是否与LinqDataSource一起工作?如果有的话,还有什么例子吗 编辑报表时,为什么不在“网站数据源”窗格中显示Linq to Sql生成的实体类?网站数据源窗格似乎只显示具有返回IEnumerable的公共方法的所有类,但它不会显示属性,即使它们也返回IEnumerable。例如,如果您有此类: 公共类名 { public Name(string firstName, string lastName) { Fir

asp.net ReportViewer控件是否与LinqDataSource一起工作?如果有的话,还有什么例子吗


编辑报表时,为什么不在“网站数据源”窗格中显示Linq to Sql生成的实体类?

网站数据源窗格似乎只显示具有返回IEnumerable的公共方法的所有类,但它不会显示属性,即使它们也返回IEnumerable。例如,如果您有此类:

公共类名

{
    public Name(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
公共类1
{
公共IEnumerable名称{get;set;}
公共IEnumerable GetNamesList()
{
列表=新列表();
添加(新名称(“Al”、“Alverson”);
添加(新名称(“比尔”、“比尔森”);
退货清单;
}
}
然后,将出现在“网站数据源”窗格中的唯一选项是“GetNamesList”,其属性为FirstName和LastName。由于Linq到SQL生成的类具有可IQueryable的属性,但不具有方法,因此您可能希望添加具有公开这些集合的方法的部分类。因此,如果您有Products属性,请创建一个签名为的分部类:

公共IEnumerable GetAllProducts()

但是我不确定您是否可以使ReportViewer与现有的LinqDataSource控件一起工作。相反,它基本上与LinqDataSource做相同的事情:实例化一个类并调用您指定的方法来获取数据

有用链接:

public class Class1
{
    public IEnumerable<Name> Names { get; set; }

    public IEnumerable<Name> GetNamesList()
    {
        List<Name> list = new List<Name>();
        list.Add(new Name("Al", "Alverson"));
        list.Add(new Name("Bill", "Billerson"));
        return list;
    }
}