corelibraries-devexpress-dot-data-dot-linq-dot-getqueryableeventargs-7fcac691.md
Gets or sets an arbitrary object associated with a queryable source.
Namespace : DevExpress.Data.Linq
Assembly : DevExpress.Data.v25.2.dll
NuGet Package : DevExpress.Data
public object Tag { get; set; }
Public Property Tag As Object
| Type | Description |
|---|---|
| Object |
An object associated with a queryable source.
|
Use this property in a LinqInstantFeedbackSource.GetQueryable event handler to pass an arbitrary object, along with a queryable source supplied via the GetQueryableEventArgs.QueryableSource property. The object will also be passed to a LinqInstantFeedbackSource.DismissQueryable event handler, so that you can dispose of it when the queryable source is no longer required for the LinqInstantFeedbackSource. For instance, you can assign the Tag property a DataContext, instantiated within a LinqInstantFeedbackSource.GetQueryable event handler, and then dispose of the DataContext within a LinqInstantFeedbackSource.DismissQueryable event handler, as shown below.
This example demonstrates how to initialize a LinqInstantFeedbackSource, to retrieve data from a “Purchasing.PurchaseOrderHeader” data table (included in the AdventureWorks database shipped with MS SQL Server). The PurchaseOrderHeader persistent class is declared, and mapped to the “Purchasing.PurchaseOrderHeader” data table using the System.Data.Linq.Mapping.TableAttribute attribute. Then, a System.Data.Linq.Table<PurchaseOrderHeader> is passed to the LinqInstantFeedbackSource in the LinqInstantFeedbackSource.GetQueryable event handler.
using System.ComponentModel;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using DevExpress.Data.Linq;
// The class describing the "Purchasing.PurchaseOrderHeader" table
// from the AdventureWorks SQL database
[Table(Name="Purchasing.PurchaseOrderHeader")]
public partial class PurchaseOrderHeader : INotifyPropertyChanging, INotifyPropertyChanged {
//...
[Column(Storage="_PurchaseOrderID", AutoSync=AutoSync.OnInsert,
DbType="Int NOT NULL IDENTITY",
IsPrimaryKey=true, IsDbGenerated=true)]
// The property mapped to the primary key column
public int PurchaseOrderID {
//...
}
//...
}
// The class describing the AdventureWorks SQL database
[DatabaseAttribute(Name="AdventureWorks")]
public partial class AdvWorksDataContext : DataContext {
//...
public System.Data.Linq.Table<PurchaseOrderHeader> PurchaseOrderHeaders {
get {
return this.GetTable<PurchaseOrderHeader>();
}
}
//...
}
public partial class Form1 : Form {
//...
private void Form1_Load(object sender, EventArgs e) {
// Specify the key property of the PurchaseOrderHeader
linqInstantFeedbackSource1.KeyExpression = "PurchaseOrderID";
// Handle the GetQueryable event, to create a DataContext and assign a queryable source
linqInstantFeedbackSource1.GetQueryable += linqInstantFeedbackSource1_GetQueryable;
// Handle the DismissQueryable event, to dispose of the DataContext
linqInstantFeedbackSource1.DismissQueryable += linqInstantFeedbackSource1_DismissQueryable;
// Assign the created data source to an XtraGrid
gridControl1.DataSource = linqInstantFeedbackSource1;
}
void linqInstantFeedbackSource1_GetQueryable(object sender, GetQueryableEventArgs e) {
// Instantiate a new DataContext
AdvWorksDataContext dataContext = new AdvWorksDataContext();
// Assign a queryable source to the LinqInstantFeedbackSource
e.QueryableSource = dataContext.PurchaseOrderHeaders;
// Assign the DataContext to the Tag property,
// to dispose of it in the DismissQueryable event handler
e.Tag = dataContext;
}
void linqInstantFeedbackSource1_DismissQueryable(object sender, GetQueryableEventArgs e) {
// Dispose of the DataContext
((AdvWorksDataContext)e.Tag).Dispose();
}
}
Imports System.ComponentModel
Imports System.Data.Linq
Imports System.Data.Linq.Mapping
Imports DevExpress.Data.Linq
' The class describing the "Purchasing.PurchaseOrderHeader" table
' from the AdventureWorks SQL database
<Table(Name:="Purchasing.PurchaseOrderHeader")> _
Partial Public Class PurchaseOrderHeader
Implements INotifyPropertyChanging, INotifyPropertyChanged
'...
' The property mapped to the primary key column
<Column(Storage:="_PurchaseOrderID", AutoSync:=AutoSync.OnInsert, _
DbType:="Int NOT NULL IDENTITY", _
IsPrimaryKey:=True, IsDbGenerated:=True)> _
Public ReadOnly Property PurchaseOrderID() As Integer
'...
End Property
'...
End Class
' The class describing the AdventureWorks SQL database
<DatabaseAttribute(Name:="AdventureWorks")> _
Partial Public Class AdvWorksDataContext
Inherits DataContext
'...
Public ReadOnly Property PurchaseOrderHeaders() As Table(Of PurchaseOrderHeader)
Get
Return Me.GetTable(Of PurchaseOrderHeader)()
End Get
End Property
'...
End Class
Partial Public Class Form1
Inherits Form
'...
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
' Specify the key property of the PurchaseOrderHeader
linqInstantFeedbackSource1.KeyExpression = "PurchaseOrderID"
' Handle the GetQueryable event, to create a DataContext and assign a queryable source
AddHandler linqInstantFeedbackSource1.GetQueryable, _
AddressOf linqInstantFeedbackSource1_GetQueryable
' Handle the DismissQueryable event, to dispose of the DataContext
AddHandler linqInstantFeedbackSource1.DismissQueryable, _
AddressOf linqInstantFeedbackSource1_DismissQueryable
' Assign the created data source to an XtraGrid
gridControl1.DataSource = linqInstantFeedbackSource1
End Sub
Private Sub linqInstantFeedbackSource1_GetQueryable(ByVal sender As Object, _
ByVal e As GetQueryableEventArgs)
' Instantiate a new DataContext
Dim dataContext As New AdvWorksDataContext()
' Assign a queryable source to the LinqInstantFeedbackSource
e.QueryableSource = dataContext.PurchaseOrderHeaders
' Assign the DataContext to the Tag property, _
' to dispose of it in the DismissQueryable event handler
e.Tag = dataContext
End Sub
Private Sub linqInstantFeedbackSource1_DismissQueryable(ByVal sender As Object, _
ByVal e As GetQueryableEventArgs)
' Dispose of the DataContext
CType(e.Tag, AdvWorksDataContext).Dispose()
End Sub
End Class
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the Tag property.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
winforms-grid-bind-to-linqinstantfeedbacksource/CS/LinqServerMode/Main.cs#L30
e.QueryableSource = dt.Suppliers;
e.Tag = dt;
}
winforms-grid-bind-to-linqinstantfeedbacksource/VB/LinqServerMode/Main.vb#L20
e.QueryableSource = dt.Suppliers
e.Tag = dt
End Sub
See Also