Compartilhar via


LinqDataSourceSelectEventArgs.Result Propriedade

Definição

Obtém ou define o objeto de dados que é usado na consulta de dados.

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

Valor da propriedade

Um objeto que representa os dados da consulta.

Exemplos

O exemplo a seguir mostra como definir a Result propriedade como o resultado de uma consulta 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

O exemplo a seguir mostra como definir a Result propriedade para uma matriz de valores de cadeia de caracteres definida na página da 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

Comentários

Por padrão, o LinqDataSource controle aplica suas expressões de consulta ao objeto definido na TableName propriedade . Em um manipulador para o Selecting evento, você pode alterar manualmente qual objeto é consultado definindo a Result propriedade como um objeto . Por exemplo, você pode usar a Result propriedade para consultar uma coleção na memória na página da Web ou para obter os resultados de uma expressão de consulta LINQ. Você pode definir a Result propriedade como qualquer objeto. Se o objeto não implementar a IEnumerable<T> interface, o LinqDataSource controle encapsulará o objeto em um objeto que implementa a IEnumerable<T> interface.

Quando a Result propriedade é definida como qualquer valor diferente de null, o LinqDataSource controle não consulta o objeto definido na TableName propriedade . Em vez disso, ele consulta o objeto na Result propriedade .

Observação

Quando você define a Result propriedade como um objeto , não use null para representar um objeto que não contém dados. O LinqDataSource controle interpreta null como significando que a Result propriedade não está definida e criará e consultará o objeto na TableName propriedade . Para representar um objeto que não contém dados, defina a Result propriedade como um IList objeto ou IList<T> que não contém nenhum elemento.

Os ContextCreatingeventos , ContextCreatede ContextDisposing não são gerados quando você define programaticamente a Result propriedade como um objeto e quando duas condições adicionais se aplicam. As condições são que os valores originais não precisam ser armazenados no estado de exibição ou o objeto na Result propriedade implementa a ITable interface.

Aplica-se a

Confira também