>> In your examples, one is generally only adding or removing items from the "join-table", not trying to modify this entity.
But realize, every time we add an Order to the Order table, we are, in effect, creating a linking entity between an Employee (acting as SalesRep) and a Customer (who placed the Order). So there's nothing at all unusual or improper about your requirement. The linking entity can have as many properties on it as you need, and can be a meaningful entity in its own right (as is Order).
Here's a many-to-many Roles property definition that return a user's collection of Roles, sorted in descending order by the Id property of the UserRole (the linking object). (Since I didn't have a SequenceNumber column in my UserRole table, I just used the Id.)
public EntityList<Role> Roles {
get {
ReadOnlyEntityList<UserRole> userRoles = base.UserRoles;
userRoles.ApplySort(
EntityPropertyDescriptors.UserRole.Id.Name,
System.ComponentModel.
ListSortDirection.Descending, false);
EntityList<Role> roles = new EntityList<Role>();
foreach (UserRole aUserRole in userRoles) {
roles.Add(aUserRole.Role);
}
return roles;
}
}