при использовании Linq-to-Sql Visual Studio создает для вас класс DataContext. Мне интересно, когда создавать экземпляр этого контекста, в одном из моих проектов я использовал один экземпляр DataContext для примерно 300 команд CRUD (весь проект), и он работал с небольшой проблемой, которую мне удалось решить позже, и в моем недавнем проекте у меня есть создал экземпляр из команды CRUD, теперь вот вопрос, что является лучшим способом использования DataContext? по одной команде или по одному на проект? или, возможно, один за транзакцию (что, я думаю, тоже хорошая идея)? И есть ли разница в скорости и производительности в каждом направлении?Практический пример области данных DataContext
2
A
ответ
4
Когда вы держите его слишком коротким, вы теряете производительность, потому что создание экземпляра DataContext не совсем бесплатное. Это дешево, но измеримо. Он отображается в профилях.
Когда вы держите его открытым слишком долго вы получите проблемы тоже:
- объектов начинают накапливаться в нем
- Вы не можете использовать его в нескольких потоках или нескольких сделок одновременно в любом случае
- Если один из ваших SubmitChanges не может по какой-то логической причине, контекст мертв, потому что та же ошибка будет появляться всегда, независимо от того, как часто вы повторить
Вот некоторые правила WHA т вы никогда не должны делать без глубокого понимания:
- У вас есть один DataContext для нескольких HTTP-запросов/WCF-вызовы
- Есть DataContext для неограниченного количества времени (т.е. продолжительность рабочего стола приложение nunning)
- Есть DataContext для неограниченного числа отслеживаемых субъектов
- Используйте его по потокам
Смежные вопросы
- 1. Практический пример полиморфизма
- 2. Практический пример PHP, ООП
- 3. Практический пример Java-файла
- 4. Практический пример программы COW?
- 5. Практический пример динамического метода?
- 6. Практический пример структуры данных в компьютерном исследовании?
- 7. Анализ естественного языка, практический пример
- 8. Groovy - AST Transformations, практический пример
- 9. Что такое практический пример объединения?
- 10. Практический пример для неизменяемого класса
- 11. Практический пример некоторых методов AtomicInteger
- 12. Каков практический предел текстовой области?
- 13. Простой практический пример для двусторонней привязки данных в AngularJS
- 14. Практический пример Google для внедрения схемы Google
- 15. Практический пример для Zend RESTful API
- 16. Нерестирующий пример WSGI (практический подход к WSGI)
- 17. простой/практический пример алгоритма нечетких c-средних
- 18. C# - Практический пример - жесткость абстрактного класса
- 19. Любой практический пример использования LockSupport & AbstractQueuedSynchronizer?
- 20. Практический пример архитектуры с использованием EBC?
- 21. Любой практический пример долгого слабого упоминания?
- 22. Что такое практический пример использования KWCaptureSpy Kiwi?
- 23. Практический пример: Это эффективный способ разделить файл?
- 24. Практический FlapJax
- 25. Кодирование в Excel-VBA без использования «.Select» - Практический пример
- 26. Лучший подход для хранения одного-многим - Практический пример/Дилемма
- 27. Любой практический пример использования возможностей LLVM Alias и IFunc?
- 28. Где я могу найти практический пример клиента Javascript HATEOAS?
- 29. Практический пример 32-разрядных неподписанных, подписанных 64-разрядных разностей
- 30. Что такое практический пример реального мира связанного списка?
что вы имеете в виде гусеничных сущностей? –
Когда вы запрашиваете сущность из базы данных, она остается навсегда в вашем DataContext. Отслеживается. – usr