Q:

Will calling .Any() in a lazy loaded collection navigation property enumerate the property?

Consider the following entities:
public class Principal
{
   [Key,DatabaseGenerated]
   public int ID{ get; set; }

   [Key,DatabaseGenerated]
   public virtual ICollection<Dependent> Dependents { get; set; }
}

public class Dependent
{
   [Key]
   public int PrincipalID { get; set; }

   [ForeignKey("PrincipalID")]
   public virtual Principal Principal { get; set; }
}

In the following scenario:
var principal = db.Principals.First();

if( principal.Dependents.Any()){
  // Do stuff
}

will the call to .Any retrieve the dependent entities or is EF smart enough to do an Exists in the store instead of retrieving the related records and doing .Any() on the enumerable?

A:

Since the Dependents navigation-property is not an IQueryable (and EF doesn't support IQueryable on navigation-properties), once loaded, the entire navigation-property data is executed and materialized and further LINQ calls will be called using Enumerable.Any (Linq-to-Objects).

