Try something like:
EntityField2 field1 = OrderFields.CustomerId.SetExpression(OrderFields.CustomerId.ToLower());
EntityField2 field2 = CustomerFields.CustomerId.SetExpression(CustomerFields.CustomerId.ToLower());
var qf1 = new QueryFactory();
var q1 = qf1.Order
.From(QueryTarget.InnerJoin(qf1.Customer).On(field1 == field2))
.Where(CustomerFields.Country == "UK");
var list = adapter.FetchQuery(q1).OfType<OrderEntity>();
The above produced:
Query: SELECT DISTINCT [Northwind].[dbo].[Orders].[CustomerID] AS [CustomerId], [Northwind].[dbo].[Orders].[EmployeeID] AS [EmployeeId], [Northwind].[dbo].[Orders].[Freight], [Northwind].[dbo].[Orders].[OrderDate], [Northwind].[dbo].[Orders].[OrderID] AS [OrderId], [Northwind].[dbo].[Orders].[RequiredDate], [Northwind].[dbo].[Orders].[ShipAddress], [Northwind].[dbo].[Orders].[ShipCity], [Northwind].[dbo].[Orders].[ShipCountry], [Northwind].[dbo].[Orders].[ShipName], [Northwind].[dbo].[Orders].[ShippedDate], [Northwind].[dbo].[Orders].[ShipPostalCode], [Northwind].[dbo].[Orders].[ShipRegion], [Northwind].[dbo].[Orders].[ShipVia] FROM ( [Northwind].[dbo].[Orders] INNER JOIN [Northwind].[dbo].[Customers] ON LOWER([Northwind].[dbo].[Orders].[CustomerID]) = LOWER([Northwind].[dbo].[Customers].[CustomerID])) WHERE ( ( [Northwind].[dbo].[Customers].[Country] = @p1))
Parameter: @p1 : String. Length: 15. Precision: 0. Scale: 0. Direction: Input. Value: "UK".