Using the Northwind schema as an example which collection interface would you use in the following circumstances.

(source: techmatica.com)
.
Customer
Customer has a collection of Orders. For the purpose of this example the Orders collection is readonly.
Order
An Order has collection of OrderDetails. An OrderDetail can be added to the collection.
Employee
An Employee has collection of Territories. An Employee can belong to 0 or more Territories but TerritoryId must be unique.
Use
ICollection<T>in all three casesfor Orders and OrderDetails. There is no specific interface for readonly collections, this is handled by the implementation (you could use aReadOnlyCollection<T>as the concrete type in that case). You could also useIList<T>, but it only adds support for access by index, which usually doesn’t really make sense in a relational model.For Territories, you could use
ISet<T>(assuming you’re using .NET 4.0). Classes that implement this interface don’t allow duplicate items.