2010-01-22 4 views
0

У меня есть старый проект C#, который в настоящее время работает в базе данных SQL CE. Вчера я решил, что хотел бы использовать SubSonic для создания DAL для меня, поскольку я использовал SubSonic много в моих других проектах (со стандартной базой данных базы данных MS SQL), и мне нравится, что это простота использования.Ошибка SubSonic SQL CE

Все, кажется, хорошо, я могу создавать и удалять записи, но как только я изменить запись с помощью метода Save() ошибка это брошенную:

Пример:

Person person = new Person(); 
person.Name = "Robert"; 
person.Save(); // Works fine, record is saved 

person.Name = "Robert - Updated"; 
person.Save(); // Fails with error below 

«Был (номер строки токена = 1, смещение линии токена = 61, токен с ошибкой = SELECT] «

Когда я обновляю запись, создавая новый запрос и устанавливая QueryType для обновления, это также кажется работать как ожидалось.

Любые идеи?

Благодаря

+0

Какой версии SubSonic вы используете? –

+0

Я пробовал как версию 2.1, так и 2.2, так как 3.0 не поддерживает SQL CE –

ответ

0

Try разжиться сгенерированного SQL, чтобы увидеть, что запускается на выполнение.

Я предполагаю, что SubSonic избегает имен столбцов или таблиц с [ и ], что отлично подходит для полномасштабного SQL Server, но его коллега CE не поддерживает это.

+0

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

+0

Вы можете позвонить person.GetUpdateCommand() –

0

Я думаю, что Дозвуковой пытаются выполнить несколько statments SQL в одной команде - это не поддерживаются SQL Compact

Смежные вопросы