2010-02-18 61 views

回答

1

它出现的网站数据源窗格将只显示所有具有公共方法返回IEnumerable的类,但它不会显示属性,即使它们也返回IEnumerable。举例来说,如果你有这样的类:

公共类名称

{ 
    public Name(string firstName, string lastName) 
    { 
     FirstName = firstName; 
     LastName = lastName; 
    } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 
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; 
    } 
} 

那么就会出现在网站数据源窗格中的唯一选项是“GetNamesList”与特性名字和姓氏。由于您的Linq-to-SQL生成的类具有IQueryable属性,但不包含方法,因此您可能需要添加具有用于公开这些集合的方法的部分类。因此,如果您拥有产品属性,请创建一个部分类,其签名为:

public IEnumerable GetAllProducts();

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

有用的链接: http://msdn.microsoft.com/en-us/library/ms251692(VS.80).aspx http://forums.asp.net/p/1430385/3667394.aspx