Я знаю, я сегодня нахожусь в режиме вопросов,
Я нахожусь в процессе создания настольного приложения.К счастью для меня, я выбрал открытую архитектуру, потому что столкнулся со следующей проблемой:
Мое приложение позволяет пользователям добавлять операции.В моих тестах я добавил только маленькие (тестовые) операции, которые легко управляемы.Каждая операция добавляется в хранилище данных, которое в настоящее время является базой данных SQL CE 4.0 (доступ к ней осуществляется с помощью кода EF 4.1, что здорово).
Теперь я протестировал приложение с помощью обычной операции, которая больше (приблизительно 4000 строк вБаза данных).Вместо того, чтобы занять несколько секунд, на самом деле вставка занимает несколько минут!В большой таблице есть только 1 внешний ключ и, конечно, первичный ключ, но кажется, что 4000 строк - это слишком много.
Все строки вставляются в 1 пакет, и реальная нехватка производительности связана сКоманда SaveChanges.
Я уже почти все об использовании ручных запросов (пока не проверял), но это не предпочтительный вариант, поскольку транзакции не поддерживаются и это должна быть изолированная операция.
Итак, сделайтенужна новая стратегия здесь?В SQL Server 2008 вы можете выполнять массовую вставку, но, по-видимому, она также не поддерживается Sql Server CE.
Какие решения на стороне клиента являются такими же гибкими, как SQL Server CE, и легкими?(Например, конечно, я не хочу, чтобы пользователь устанавливал SQL Server или использовал некоторые нативные компоненты).
Я могу использовать сериализацию в некоторых формах, но это похоже на переизобретение колеса и много работы (обновление, целостность,многопоточный доступ и т. д.).
Заранее спасибо!