When a query becomes so complicated that it is hard to read and maintain, we should refactor it, so as to improve its legibility and maintainability.
The following Insert statement is an example that is not legible:
|
InsertQuery ins = OQL .InsertInto(NW.Order) .Select(OQL .Select(NW.Order) .From(NW.Order) .Where(NW.Order.CustomerID .In(OQL .Select(NW.Customer.CustomerID) .From(NW.Customer) .Where(NW.Customer.ContactTitle == "Owner")))); |
After refactoring, it becomes more legible:
|
SelectQuery getCustomer
= OQL .Select(NW.Customer.CustomerID) .From(NW.Customer) .Where(NW.Customer.ContactTitle == "Owner"); SelectQuery getOrder =
OQL .Select(NW.Order) .From(NW.Order) .Where(NW.Order.CustomerID.In(getCustomer)); InsertQuery ins = OQL .InsertInto(NW.Order) .Select(getOrder); |
Related Topics