IList (IList<T>) crea inmediatamente datos persistentes en memoria, que no implementan "ejecución diferida", y si la entidad cargada tiene entidades asociadas, la entidad asociada no se cargará (ni inmediatamente ni de forma perezosa).
IQeurable <T>no crea inmediatamente datos persistentes en memoria, sino que solo carga datos en memoria si se atraviesan (por ejemplo, a través de forreach), se convierten en una lista, etc., y pueden lograr una "ejecución diferida"; si la entidad cargada actualmente tiene asociaciones, esta entidad asociada puede cargarse en el siguiente acceso.
Mira el siguiente fragmento de código:
//IList的情况 IList users = res. ToList(); Los usuarios han sido cargados en memoria, pero la entidad asociada (UserInfos) para cada usuario no lo ha sido se carga, así que la siguiente línea de código no pasa bien var ss = usuarios. Donde (p => p.UserInfos.ID != 3); El error se reporta aquí porque la entidad UserInfos de P no puede cargarse
Situación de IQuerable Usuarios IQueryables = res. AsQueryable(); los usuarios no se cargan inmediatamente, y la entidad asociada puede obtenerse mediante "carga perezosa" Entiendo var ss = usuarios. Donde (p => p.UserInfos.ID != 3); Aquí se obtuvo con éxito la SS correspondiente |