Here is situation I have been trying to solve
Lets take a Employee table
Create Table Employee
(
        Employeeid int primary key,
        EMPname varchar(50),
        ManagerEmplId int reference key Employee (EmployeeID)
         TreeLevel int,
              ....
)
Here i need to find all leaf level employees.
Leaf Level Employees - All employees who have manager but they do not have anybody reporting to them. I have a little help from db which has TreeLevel column where I can specify pick anybody at level 3 but I need a UNIONclause which will get me all employees at treelevel 2 that do not have any employees reporting. I have only 3 levels of tree if that helps in creating linq query.
   return ((from b in _db.Employees
                && b.TreeLevel==3 && b.DeletedDate== null
                    select b)
                    .Union
                    (from b in _db.Employees
                     select b)
                    )
                    .ToDictionary(k => k.EmployeeID, v => v.EMPname);
UPDATE: The real query:
(from fi in firm 
 join bra in _db.Branches on fi.BranchID equals bra.ParentBranchID into g 
 from sc in g.DefaultIfEmpty() 
 where fi.DeletedDate == null && g == null 
 select fi)
 .ToList()
 .ToDictionary(k => k.BranchID, v => v.BranchName);
Error:
Cannot compare elements of type 'System.Collections.Generic.IEnumerable`1'. 
Only primitive types (such as Int32, String, and Guid) and entity types are supported.
 
     
     
     
     
    
* join firm in _db.Branches on b.BranchID equals firm.ParentBranchID into
* from sc in g.DefaultIfEmpty()
* wher b.DeletedDate == null && g == null
* select b).ToList()
* .ToDictionary(k => k.BranchID, v => v.BranchName);
* Getting error
* Cannot compare elements of type 'System.Collections.Generic.IEnumerable`1'. Only primitive types (such as Int32, String, and Guid) and entity types are supported. – user1147971 Jan 13 '12 at 18:07