You have one of two possible scenarios:
Item is related to Account (expressed in your Entity model as EntityAssociation and in DB as a foreign key):
There is no connection between Item set and Account , so you must specify the connection in LINQ, as you did.
Case 1: if this is the case, then you do not need a union statement ... by selecting Acount.Item , naturally, it will give you all the elements where Item.AccountID is equal to Account.ID
So your join m in _entities.Item on acct.Id equals m.Account.Id statement: join m in _entities.Item on acct.Id equals m.Account.Id basically told Item to return to Account to check the identifier. If they are not connected yet, you could not get m.Account.ID
Case 2: if there is no relationship between Account and Item , then .Include() will certainly not work, because the navigation property DOES NOT exist in your model.
Conclusion Check your new model to see if there is a relationship between Account and Item . If so, uninstall Join. If there is no relationship, then you did something wrong.
Here is the select statement assuming script 1, and that Account.Item not a collection:
var account = from acct in _entities.Account.Include("Item.ItemDetails") where acct.Id == accountId && acct.Item.ItemNumber.EndsWith(itemNumber) select acct;
source share