Недавно мы перешли от использования SQL CE 3.5 SP2 RTM (версия файла 3.5.8080) к накопительному обновлению 2 (3.5.8082) и начали сталкиваться с проблемой, когда Entity Framework (из .NET 3.5) не может загрузить систему.Data.SqlServerCe.Entity.dll.
Ошибка, которую мы получаем:
System.Data.MetadataException: указанная схема недопустима.Ошибки: MyData.ssdl (2,117): ошибка 0004: не удалось загрузить System.Data.SqlServerCe.Entity.dll.Переустановите SQL Server Compact.
Я не уверен относительно того, как структура сущностей определяет, какой поставщик Entity Framework загрузить на основе поставщика ADO.NET.Один интересный момент заключается в том, что версия сборки для CU2-копии System.Data.SqlServerCe.dll - 3.5.1.0 (без изменений в RTM), а версия сборки для System.Data.SqlServerCe.Entity.dll - 3.5.1.5.Я не знаю, в этом ли проблема, но это кажется странным.
Строка, на которую ссылается файл SSDL, - это строка, в которой указан поставщик ADO.NET (System.Data.SqlServerCe).Я не вижу ссылки на провайдера EF.
Если я просто заменю System.Data.SqlServerCe.Entity.dll версией из RTM, все снова начнет работать.Однако меня это беспокоит, так как есть вероятные изменения, которые мне нужны от CU2, которые я не получу.
Идеи?