Как я могу эффективно и легко импортировать / экспортировать большие бизнес-данные в .NET? - PullRequest
2 голосов
/ 09 сентября 2010

Какой будет наилучший формат данных (XML, база данных и т. Д.) Для больших бизнес-данных, когда мы хотим эффективно и легко загрузить их (импортировать) в бизнес-объекты в .NET?

Я хочу загрузить все данные за один раз и создать все бизнес-объекты.Данные должны иметь своего рода «схему», чтобы позволить другим людям создавать их.

Также обратите внимание, что я хочу упростить процесс создания бизнес-классов из конкретной схемы данных (может быть XSDсхема, схема базы данных и т. д.).Я попробовал два подхода, ни один из которых не оказался полностью удовлетворительным:

  1. XML , xsd.exe или эквивалентный инструмент (например, Xsd2Code) длягенерировать бизнес-классы и отображение.Для больших данных размер хранилища XML становится проблемой.

  2. База данных (SQL Server CE), используя Entity Framework для созданиябизнес-классы и отображение: во время первых тестов для увеличения размера базы данных у EF были серьезные проблемы (проблемы с производительностью и нехватка памяти).

Чего я хочу достичь (загрузка крупных бизнес-данных в память за один раз) кажется «стандартной» (или это действительно так?), но я не могу найти эффективный и чистый способ сделать это.

Ответы [ 3 ]

1 голос
/ 09 сентября 2010

Ваш вопрос на самом деле немного расплывчатый, поэтому я могу ответить только своим внутренним чувством.Хранение данных для баз данных.Вы говорите о бизнес-объектах, поэтому использование инструмента OR / M - логичный выбор.Поскольку вы находитесь в .NET, Entity Framework - это логичный выбор.

Мне не кажется, что Entity Framework должна вызывать какие-либо проблемы с памятью, которые другие решения вам не дадут.Я думаю, что ваши проблемы с OOM вызваны неправильным использованием инструмента или, возможно, другими проблемами.Если у вас возникли проблемы с ним, пожалуйста, задайте конкретный вопрос об этой проблеме здесь, в SO.

Удачи.

0 голосов
/ 09 сентября 2010

Если у вас есть XML и базы данных SQL, вы можете попробовать LINQ. Используйте программу SQLMetal, чтобы автоматически генерировать классы, которые соответствуют вашим таблицам SQLDatabase. Если у вас есть отношения в вашей БД, они также сохраняются в объектной модели, сгенерированной SQLMetal.

0 голосов
/ 09 сентября 2010

Взгляните на XML-сериализацию в .NET Framework.Я использую это с проектом обмена данными, и .NET поддерживает сериализацию и десериализацию информации в и из объектов с очень небольшим количеством кода.Это может быть путь, который вы хотите выбрать.

Редактировать: Я вижу, что вы также играли с xsd.exe, вы можете использовать db для хранения XML в столбце таблицы для удобства поиска.На самом деле мы делаем это и в текущем проекте.Мы получаем некоторый XML из стороннего источника, поэтому сохраняем его в таблице, проверяем по схеме и затем считываем в .NET-объекты, сгенерированные из файла .xsd с использованием подхода xsd.exe.Я не уверен, насколько велики ваши данные, но этот подход хорошо работает для нас.

...