У меня есть проект (небольшой, предоставленный), в котором появились новые требования к пространственным типам.Я решил посмотреть, как легко будет перейти на Entity Framework с LINQ на SQL.
Это заняло у меня не более 30 минут.Перед началом работы убедитесь, что у вас есть резервная копия управления исходным кодом.
Install-Package EntityFramework -Version {pick one}
- Удалите старые файлы
.dbml
- Создайте новый объектсмоделируйте и обновите ваши ссылки на новые объекты сущностей (это проще, если у вас уже есть базовый репозиторий или что-то, связывающее LINQ to SQL).Я пошел по этому пути (сначала база данных / дизайнер), потому что это был более простой путь обновления с LINQ до SQL.Вы можете сначала попробовать код, если хотите, но ... YMMV.
- Обновите строки подключения.Entity Framework имеет свою странную оболочку для традиционных SQL-соединений.Мой вот так, ваш может выглядеть иначе:
metadata=res://*/;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS; Initial Catalog=MyDataBase; Integrated Security=True'
- Исправьте ошибки компиляции.Большинство из них будут отличаться в
Insert/DeleteOnSubmit
и EF Add/Remove
или Add/RemoveRange
.Области транзакций могут работать по-другому (рассмотрите возможность использования context.Database.BeginTransaction
вместо областей транзакций). - Перестройте его после устранения ошибок компиляции.
Вот и все.Это было намного проще, чем я ожидал, и теперь я могу использовать пространственные типы без каких-либо хитростей.