Condividi tramite


LinqDataSourceSelectEventArgs.Result Proprietà

Definizione

Ottiene o imposta l'oggetto dati utilizzato nella query di dati.

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

Valore della proprietà

Oggetto che rappresenta i dati per la query.

Esempio

Nell'esempio seguente viene illustrato come impostare la Result proprietà sul risultato di una query 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

Nell'esempio seguente viene illustrato come impostare la Result proprietà su una matrice di valori stringa viene definita nella pagina Web.

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

Commenti

Per impostazione predefinita, il LinqDataSource controllo applica le espressioni di query all'oggetto definito nella TableName proprietà. In un gestore per l'evento è possibile modificare manualmente l'oggetto Selecting sottoposto a query impostando la Result proprietà su un oggetto. Ad esempio, è possibile usare la Result proprietà per eseguire query su una raccolta in memoria nella pagina Web o ottenere i risultati da un'espressione di query LINQ. È possibile impostare la Result proprietà su qualsiasi oggetto. Se l'oggetto non implementa l'interfaccia IEnumerable<T> , il LinqDataSource controllo esegue il wrapping dell'oggetto in un oggetto che implementa l'interfaccia IEnumerable<T> .

Quando la Result proprietà è impostata su qualsiasi valore diverso da null, il LinqDataSource controllo non esegue query sull'oggetto TableName definito nella proprietà. Esegue invece una query sull'oggetto nella Result proprietà.

Nota

Quando si imposta la Result proprietà su un oggetto, non usare null per rappresentare un oggetto che non contiene dati. Il LinqDataSource controllo interpreta null per indicare che la Result proprietà non è impostata e creerà e eseguirà una query sull'oggetto nella TableName proprietà. Per rappresentare un oggetto che non contiene dati, impostare la Result proprietà su un IList oggetto o IList<T> che non contiene elementi.

Gli ContextCreatingeventi , ContextCreatede ContextDisposing non vengono generati quando si imposta a livello di codice la Result proprietà su un oggetto e quando si applicano due condizioni aggiuntive. Le condizioni sono che i valori originali non devono essere archiviati nello stato di visualizzazione o l'oggetto nella Result proprietà implementa l'interfaccia ITable .

Si applica a

Vedi anche