Как преобразовать DataContext "LINQ для SQL" для записи в плоских файлах XML? - PullRequest
0 голосов
/ 04 ноября 2011

Я использую linq to sql в моем приложении Windows, оно работает нормально, но теперь по какой-то причине я хочу удалить эту базу данных sql server , и вместо нее я хочу использовать XML-файлы как хранилище данных. что я должен сделать , не внося гораздо больше изменений в мой код C #.

В моем проекте я сделал что-то подобное ..

Изначально я перетаскиваю и перетаскиваю всю свою таблицу базы данных sql во фрейм .net. Здесь я получаю файл q.dbml своей базы данных, и я обращаюсь к этому как

DataContext dc = new qDataContext();         
var v = from emp in dc.employees where emp.id == 1 select emp;

Есть ли способ заменить базу данных сервера SQL на XML, не внося гораздо больше изменений в код моего проекта?

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Вы лаете не на то дерево.

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

Так как вы этого не сделали ... вы застряли с ручным изменением вашего кода. LINQ to SQL не может быть «преобразован» в LINQ to XML; этого просто не произойдет.

0 голосов
/ 04 ноября 2011

Помимо почему вы бы хотели это сделать ...

Нет.Не существует способа переключения с базы данных SQL Server на файлы XML, который не повлечет за собой большого количества изменений в вашем коде.

Как отмечали другие, LINQ to SQL и LINQ to XML нетоже самое.LINQ to SQL опирается на объект контекста, который знает, как подключиться к вашей базе данных, как читать таблицы и т. Д. Не существует эквивалентной концепции с обобщенными файлами XML.По крайней мере, вам придется переписать часть доступа к данным вашего проекта.

...