2010-02-18 3 views
2

LinqDataSource asp.net ReportViewer 컨트롤이 작동합니까? 그렇다면 거기에 예제가 있습니까?ASP.NET ReportViewer 및 Linq to Sql 질문

리포트를 편집 할 때 Linq to Sql 생성 엔티티 클래스가 웹 사이트 데이터 소스 창에 표시되지 않는 이유는 무엇입니까?

답변

1

웹 사이트 데이터 소스 창에는 IEnumerable을 반환하는 public 메서드가있는 모든 클래스 만 표시되지만 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 인 속성이 있으므로이 컬렉션을 노출하는 메소드가있는 부분 클래스를 추가 할 수 있습니다. 따라서 Products 속성이있는 경우 서명이있는 부분 클래스를 만듭니다.

public IEnumerable GetAllProducts();

그러나 기존 LinqDataSource 컨트롤로 ReportViewer를 사용할 수 있는지 잘 모르겠습니다. 대신 기본적으로 LinqDataSource와 동일한 작업을 수행합니다. 즉, 클래스를 인스턴스화하고 지정한 메서드를 호출하여 데이터를 가져옵니다.

유용한 링크 : http://msdn.microsoft.com/en-us/library/ms251692(VS.80).aspx http://forums.asp.net/p/1430385/3667394.aspx