You should first read this -
http://drc.ideablade.com/devforce-2012/bin/view/Documentation/linq-join-examples - to determine whether you really do need a join. In most models, relationships can be expressed with navigation properties, for example:
aCustomer.Orders
anOrder.Customer
If you do need to join entities which don't have an existing foreign key relationship, you can do so like you've done above. For example, here's a contrived example to join Northwind Employees and Users based on their names:
var query = from e in entityManager.Employees
join u in entityManager.Users
on new { id1 = e.FirstName, id2 = e.LastName } equals new { id1 = u.FirstName, id2 = u.LastName }
select e;
var results = query.ToList();
The types and names of properties in the anonymous types used in the join must be the same, and here the "id1" and "id2" names aren't required.