次の方法で共有


LinqDataSourceSelectEventArgs.Result プロパティ

定義

データ クエリで使用されるデータ オブジェクトを取得または設定します。

public:
 property System::Object ^ Result { System::Object ^ get(); void set(System::Object ^ value); };
public object Result { get; set; }
member this.Result : obj with get, set
Public Property Result As Object

プロパティ値

クエリのデータを表すオブジェクト。

次の例では、 Result プロパティを LINQ クエリの結果に設定する方法を示します。

protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
    ExampleDataContext exampleContext = new ExampleDataContext();
    
    e.Result = from p in exampleContext.Products 
         where p.Category == "Beverages"
         select new {
           ID = p.ProductID,
           Name = p.Name
         };
}
Protected Sub LinqDataSource_Selecting(sender As Object, e As LinqDataSourceSelectEventArgs)
    Dim exampleContext As New ExampleDataContext()

    e.Result = From p In exampleContext.Products Where p.Category = "Beverages"
               Select New With { _
                    Key .ID = p.ProductID, _
                    Key .Name = p.Name _
    }
End Sub

次の例は、web ページで定義されている文字列値の配列に Result プロパティを設定する方法を示しています。

public partial class Default3 : System.Web.UI.Page
{
    string[] citiesArray = 
    { 
        "Atlanta", 
        "Charlotte", 
        "Denver", 
        "New York", 
        "San Francisco" 
    };

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        var cities = from city in citiesArray
                     where city.CompareTo("B") > 0
                     select city;
        e.Result = cities;
        // Or we could set e.Result = citiesArray to return all rows.
    }
}
Partial Class Default3
    Inherits System.Web.UI.Page

    Dim citiesArray() As String = _
    { _
        "Atlanta", _
        "Charlotte", _
        "Denver", _
        "New York", _
        "San Francisco" _
    }


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       
    End Sub

    
    Protected Sub LinqDataSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceSelectEventArgs) Handles LinqDataSource1.Selecting
        Dim cities = From city In citiesArray _
                     Where city > "B" _
                     Select city
        e.Result = cities
        ' Or we could set e.Result = citiesArray to return all rows.
    End Sub
    
End Class

注釈

既定では、 LinqDataSource コントロールは、 TableName プロパティで定義されているオブジェクトにクエリ式を適用します。 Selecting イベントのハンドラーでは、Result プロパティをオブジェクトに設定することで、クエリを実行するオブジェクトを手動で変更できます。 たとえば、 Result プロパティを使用して、Web ページ内のメモリ内コレクションに対してクエリを実行したり、LINQ クエリ式から結果を取得したりできます。 Resultプロパティは任意のオブジェクトに設定できます。 オブジェクトが IEnumerable<T> インターフェイスを実装していない場合、 LinqDataSource コントロールは、 IEnumerable<T> インターフェイスを実装するオブジェクト内のオブジェクトをラップします。

Result プロパティが null 以外の値に設定されている場合、LinqDataSource コントロールは、TableName プロパティで定義されているオブジェクトに対してクエリを実行しません。 代わりに、 Result プロパティ内のオブジェクトに対してクエリを実行します。

Result プロパティをオブジェクトに設定する場合は、データを含まないオブジェクトを表すためにnullを使用しないでください。 LinqDataSource コントロールは、Result プロパティが設定されていないことを意味するnullを解釈し、TableName プロパティ内のオブジェクトを作成してクエリを実行します。 データを含まないオブジェクトを表すには、 Result プロパティを要素を含まない IList または IList<T> オブジェクトに設定します。

ContextCreatingContextCreated、およびContextDisposingイベントは、プログラムによって Result プロパティをオブジェクトに設定し、さらに 2 つの条件が適用される場合には発生しません。 条件は、元の値をビューステートに格納する必要がないか、 Result プロパティ内のオブジェクトが ITable インターフェイスを実装することです。

適用対象

こちらもご覧ください