Я предлагаю вам либо использовать более легкий API, либо рассмотреть SQLite.

я есть проект C #, который использует sqlserver Compact Edition и Entity Framework для доступа к данным. У меня есть необходимость вставить или обновить большое количество строк, 5000+ или более в БД, поэтому, если ключ существует, обновите запись, если не вставьте ее. Я не могу найти способ сделать это с компактной версией и EF без ужасной производительности, то есть за 2 минуты плюс на компьютере с ядром i7. Я попытался найти запись, чтобы увидеть, существует ли она, затем вставить, если нет, или обновить, если это так, поиск является убийцей в этом. Я попытался составить поисковый запрос, и это дало лишь небольшое улучшение. Еще одна вещь, которую я попробовал, это вставить запись в попытку и, если она не обновляется, но это заставляет меня сохранять изменения в каждой записи, чтобы получить исключение, а не в конце, что является причиной снижения производительности. Очевидно, я не могу использовать хранимые процедуры, потому что это компактная версия. Также я рассмотрел просто выполнение t-sql напрямую как-то на БД, но отсутствие операторов процесса в компакте, кажется, исключает это. Я искал по всему миру идеи. Я действительно хотел использовать компактный, если я могу чрезмерно выразить преимущества развертывания и возможность предотвращения пользователя копаться в БД. Любые предложения будут оценены.

Спасибо

Ответы на вопрос(7)

Ваш ответ на вопрос