AssociationAttribute Class

Definition

Designates a property to represent a database association, such as a foreign key relationship.

[System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false)]
public sealed class AssociationAttribute : System.Data.Linq.Mapping.DataAttribute
Inheritance
AssociationAttribute
Attributes

Inherited Members

System.Attribute

System.Data.Linq.Mapping.DataAttribute

System.Object

Examples

   private EntityRef<Customer> _Customer;
// ...
[Association(Name="FK_Orders_Customers", Storage="_Customer", ThisKey="CustomerID", IsForeignKey=true)]
public Customer Customer
{
	get
	{
		return this._Customer.Entity;
	}
	set
	{
		Customer previousValue = this._Customer.Entity;
		if (((previousValue != value) 
					|| (this._Customer.HasLoadedOrAssignedValue == false)))
		{
			this.SendPropertyChanging();
			if ((previousValue != null))
			{
				this._Customer.Entity = null;
				previousValue.Orders.Remove(this);
			}
			this._Customer.Entity = value;
			if ((value != null))
			{
				value.Orders.Add(this);
				this._CustomerID = value.CustomerID;
			}
			else
			{
				this._CustomerID = default(string);
			}
			this.SendPropertyChanged("Customer");
		}
	}
}
Private _Customer As EntityRef(Of Customer)
<Association(Name:="FK_Orders_Customers", Storage:="_Customer", ThisKey:="CustomerID", IsForeignKey:=True)> _
Public Property Customer() As Customer
    Get
        Return Me._Customer.Entity
    End Get
    Set(ByVal value As Customer)
        Dim previousValue As Customer = Me._Customer.Entity
        If (((previousValue Is value) _
           = False) _
           OrElse (Me._Customer.HasLoadedOrAssignedValue = False)) Then
            Me.SendPropertyChanging()
            If ((previousValue Is Nothing) _
               = False) Then
                Me._Customer.Entity = Nothing
                previousValue.Orders.Remove(Me)
            End If
            Me._Customer.Entity = value
            If ((value Is Nothing) _
               = False) Then
                value.Orders.Add(Me)
                Me._CustomerID = value.CustomerID
            Else
                Me._CustomerID = CType(Nothing, String)
            End If
            Me.SendPropertyChanged("Customer")
        End If
    End Set
End Property

Remarks

Use this attribute to represent an association in a database, such as the relationship between a foreign key and a primary key.

In the following example, the Order class includes an AssociationAttribute attribute to associate Orders with Customers.

Constructors

AssociationAttribute()

Initializes a new instance of the AssociationAttribute class.

Properties

DeleteOnNull

When placed on a 1:1 association whose foreign key members are all non-nullable, deletes the object when the association is set to null.

DeleteRule

Gets or sets delete behavior for an association.

IsForeignKey

Gets or sets the member as the foreign key in an association representing a database relationship.

IsUnique

Gets or sets the indication of a uniqueness constraint on the foreign key.

OtherKey

Gets or sets one or more members of the target entity class as key values on the other side of the association.

ThisKey

Gets or sets members of this entity class to represent the key values on this side of the association.