Не проходит каскадное обновление полей
От: senglory  
Дата: 21.09.10 08:05
Оценка:
В этомпроекте я в базе выставил ON UPDATE CASCADE. И в SQLite Expert обновление ObjectID в TB_User проходит как надо и отображается по всем дочерним таблицам. А вот через BLToolkit обновление происходит только в TB_User. Почему?
Re: Не проходит каскадное обновление полей
От: senglory  
Дата: 21.09.10 15:13
Оценка: 36 (1)
Здравствуйте, senglory, Вы писали:

S>В этомпроекте я в базе выставил ON UPDATE CASCADE. И в SQLite Expert обновление ObjectID в TB_User проходит как надо и отображается по всем дочерним таблицам. А вот через BLToolkit обновление происходит только в TB_User. Почему?


Нашел решение. Но нужно вмешательство автора BLToolkit. Чтобы на SQLite работало каскадное обновление, надо после откратия каждого SQliteConnection выполнять такой код:



const string sqlString = "PRAGMA foreign_keys = ON;"; 
SQLiteCommand command = new SQLiteCommand(sqlString, connection); 
command.ExecuteNonQuery();
Re[2]: Не проходит каскадное обновление полей
От: elvik Россия  
Дата: 21.09.10 15:40
Оценка: +1
Здравствуйте, senglory, Вы писали:

S>Здравствуйте, senglory, Вы писали:


S>>В этомпроекте я в базе выставил ON UPDATE CASCADE. И в SQLite Expert обновление ObjectID в TB_User проходит как надо и отображается по всем дочерним таблицам. А вот через BLToolkit обновление происходит только в TB_User. Почему?


S>Нашел решение. Но нужно вмешательство автора BLToolkit. Чтобы на SQLite работало каскадное обновление, надо после откратия каждого SQliteConnection выполнять [url=http://stackoverflow.com/questions/1823537/sqlite-pragma-foreign-keys-question

S>]такой[/url] код:



S>
S>const string sqlString = "PRAGMA foreign_keys = ON;"; 
S>SQLiteCommand command = new SQLiteCommand(sqlString, connection); 
S>command.ExecuteNonQuery(); 
S>


Быть может стоит посмотреть на событие AfterOperation у DbManager'а?
Re[2]: Не проходит каскадное обновление полей
От: IT Россия linq2db.com
Дата: 22.09.10 02:52
Оценка:
Здравствуйте, senglory, Вы писали:

S>Нашел решение. Но нужно вмешательство автора BLToolkit. Чтобы на SQLite работало каскадное обновление, надо после откратия каждого SQliteConnection выполнять [url=http://stackoverflow.com/questions/1823537/sqlite-pragma-foreign-keys-question


Может быть у SQLite есть какие-то настройки, которые позволяют установаить это один раз?
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.