MSSQL Compact Edition - Visual Studio сгенерировал наборы данных по сравнению с моим собственным пользовательским кодом с использованием SqlCommand и т. Д., Или есть другие доступные варианты? - PullRequest
1 голос
/ 27 октября 2010

Извините за, возможно, не очень четкое название этого вопроса, но я попытаюсь объяснить его лучше, так что терпите меня немного дольше:)

У нас есть какое-то приложение C # на устройстве с Windows Mobile ион использует базу данных MSSQL CE для хранения своих данных (я полагаю, неудивительно).Проблема заключается в том, что любое изменение в схеме БД (новые столбцы, другой тип данных в столбце и т. Д.) Вызывает изменения в классах, сгенерированных VS, работающих с этим БД.Может быть, я не знаю, как правильно его использовать, но у меня есть ощущение, что эти классы довольно тяжелые, и, возможно, моя собственная база кода на объектах SqlCommand будет немного более удобной и пригодной для обслуживания.Кроме того, время инициализации и получения данных из базы данных довольно велико, по крайней мере, при первом использовании определенных таблиц, и я не знаю, является ли это следствием неоптимизированного (сгенерированного) кода или просто так, как он работает.В конце концов, классы, сгенерированные Visual Studio, на самом деле являются простыми SqlCommands в действии, поэтому вполне возможно, что это только мой синдром NIH, а не настоящая проблема.

И, пожалуйста, не отбрасывайте этот вопрос как поиск мнений, который не является реальным решением, потому что, с моей точки зрения, я либо ошибаюсь и должен быть исправлен, либо код, сгенерированный VS, раздут и настроен специальнонабор прямых команд (или какой-либо другой способ получения и сохранения данных в БД) был бы лучшим решением с точки зрения затрат времени на выполнение и относительно более простым обслуживанием и разработкой.

Ответы [ 2 ]

1 голос
/ 27 октября 2010

Посмотрите http://orm.codeplex.com

0 голосов
/ 27 октября 2010

Это общая проблема, связанная с затратами на обслуживание из-за изменений схемы

Возможно, вы могли бы использовать каркас сущностей в качестве ORM или, может быть, linq2sql.

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

Если вы не можете использовать ORM с идентификатором CE, настоятельно рекомендуем использовать его - они сделают вашу жизнь намного проще.Возможные варианты: Entity Framework, Linq2sql или nhibernate.

...