2010-02-18 48 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