Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20726|Відповідь: 0

[Джерело] Відмінності між .net IQueryable та IList

[Копіювати посилання]
Опубліковано 22.08.2016 11:22:07 | | |

IList (IList<T>) негайно створює постійні дані в пам'яті, яка не реалізує «відстрочене виконання», і якщо завантажена сутність має пов'язані сутності, відповідна сутність не буде завантажена (ні негайно, ні ліниво).

IQeurable <T>не створює одразу постійні дані в пам'яті, а завантажує їх лише у разі, коли вони обходять (наприклад, через форрич), конвертуються у список тощо, і можуть досягти «відкладеного виконання», якщо завантажена об'єкта має асоціації, ця асоційована сутність може бути завантажена наступним доступом.

Подивіться на наступний фрагмент коду:
//IList的情况
IList users = res. ToList(); Користувачі були завантажені в пам'ять, але пов'язана сутність (UserInfos) для кожного користувача — ні.
                       завантажується, тому наступний рядок коду не проходить гладко
var ss = користувачі. Де(p => p.UserInfos.ID != 3); Тут повідомляється про помилку, оскільки сущність UserInfos від P не може бути завантажена

Ситуація IQuerable
IQueryable users = res. AsQueryable(); Користувачі не завантажуються одразу, і відповідну сутність можна отримати шляхом «лінивого завантаження»
                                   Зрозуміло
var ss = користувачі. Де(p => p.UserInfos.ID != 3); Відповідний SS був успішно отриманий тут




Попередній:.net здійснює розробку WeChat для отримання інформації про користувача та функції сканування [з вихідним кодом]
Наступний:Запитайте про моніторинг використання Alipay, @小渣渣
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com