I think there are two solutions: (My code uses the Northwind model)
(A) Use the Distinct() method:
var order = Scope.Extent<Order>().Single(u => u.Id == x);
var count = order.OrderDetails.Where(d => d.Discount > 0.2).Select(d => d.UnitPrice).Distinct().Count();
Issue with this way is, that there will actually be two queries: one for the order, the other one for the OrderDetails; the rest is done in memory.
(B) Use the distinctness of GroupBy:
var diffIp = Scope.Extent<OrderDetail>().Where(od => od.OrderID == x).GroupBy(od => od.UnitPrice).Count();
Here we can combine the filter for the Order into the query, and the group by will produce distinct keys, which can then be counted easily; only one query needed.
the Telerik team