Cross-Database Query Without Casting to List

I am trying to do a cross-database query without having to enumerate the variable t.

public List<Models.MCMessageCenter> GetMsgCtrsWithReloInfoByUserId(Guid userId)
{
var t = GetMessageCentersByUserId(userId).ToList();

List<Models.MCMessageCenter> result;

using (var ctx = new TEDREntities())
{
result = (from n in t
join m in ctx.UserAccounts.AsNoTracking() on n.UserId equals m.UserAccountId
select new Models.MCMessageCenter
{
Id = n.Id,
MessageTitle = n.MessageTitle,
CreatedDate = n.CreatedDate,
UserId = n.UserId,
Name = m.FirstName + " " + m.LastName,
RelatedEntityId = n.RelatedEntityId
}).ToList();
}


t could be very large so I don't want to enumerate it by turning it into a list. Is there a better, more efficient way to perform a cross database query?

Whenever I attempt to keep t as IQueryable, I get an error like "can't query two datasources at once." I can get the exact message if anyone needs.

You can try to replace the .ToList() by an .AsEnumerable(). AsEnumerable() makes a transition from LINQ-to-EF to LINQ-to-Objects. AsEnumerable() does not enumerate the items (lazy enumeration).