.NET: преобразование из LINQ в SQL в Entity Framework - PullRequest
6 голосов
/ 25 января 2011

Чтобы как можно быстрее запустить прототип для проекта, я использовал LINQ to SQL для сохранения данных.

Теперь проект более зрелый, и я сталкиваюсь с ограничениями параллелизма с LINQ дляSQL.Поскольку он не является истинным ORM и не предназначен для корпоративного использования, я хотел бы заменить всю работу LINQ to SQL на постоянство Entity Framework.

Что в этом участвует?Может ли какая-либо из моих работ по LINQ to SQL быть переоборудована для EF?Я собираюсь начать с EF с нуля?С чего мне начать?Любые полезные ссылки или советы?

Ответы [ 3 ]

3 голосов
/ 25 января 2011

Многие люди делают то же самое обращение. Здесь есть шаблон, который вы можете использовать для конвертации http://blogs.msdn.com/b/efdesign/archive/2009/08/13/linq-to-sql-to-entity-framework-conversion-template.aspx

1 голос
/ 26 января 2011

Это довольно сложная проблема и одна из основных причин, по которым я рекомендую людям избегать LinqToSql довольно долгое время. Microsoft не хочет, чтобы люди использовали LinqToSql.

Ваша лучшая ставка, вероятно, начнется заново и повторно использует код, когда / если вы можете (некоторые из ваших запросов Linq могут переводить почти один на один автоматически, но даже это не является надежной вещью).

LinqToSql - верный, но плохо функционирующий ORM. LinqToSql может и используется на предприятии людьми, которым не нужны расширенные функции ORM.

Вы, вероятно, не единственный человек, который пойдет по этому пути (пытаясь «обновить» с LinqToSql до EntityFramework), но на данный момент неясно, существует ли потребность рынка в хороших инструментах для поддержки такого рода миграция.

Учитывая то, что Microsoft меняет направление доступа к данным каждые два года или около того уже более десяти лет, вы можете рассмотреть NHibernate в качестве альтернативы Entity Framework (если вы беспокоитесь о том, что Microsoft «закатывает» Entity Framework, как они это делали в LinqToSql).

0 голосов
/ 26 сентября 2015

Я сомневаюсь, что какое-то автоматическое преобразование возможно. Есть несколько различий. Наихудшим является способ вызова хранимых процедур со скалярными возвращаемыми значениями. EntityFramework не возвращает значение, но количество затронутых строк. Это требует изменений в вашем T-SQL. Это не может быть сделано ни одним шаблоном. Некоторые запросы LINQ2SQL не работают в EntityFramework и должны быть изменены. Существует досадная разница во множественном числе. EF постарайся быть таким умным. Таблица UserInfo является множественным числом как UserInfoes, тогда как L2SQL UserInfos. Таблица Persons называется множественным числом как Poeple вместо Persons. Таким образом, вы должны изменить эти плюрализм. Если вы используете некоторую предварительную работу с соединениями (не используйте строку соединения), вы можете просто обновить ее. DBConnection не совместим с EntityConnection. Вам также нужно переписать этот слой вашего приложения. Много тяжелой работы для шаблона преобразования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...