Thank you very much for response.
We found the problem. It is not related with MSSQL at all.
We are using dotConnect for PostgreSQL Pro 5.50.244 and we are using postgre 9.1. We are using Devart Linq (lqml) as well. Db has UTF8 collation. Lqml connects to database with LATIN5 character encoding. TemplateWebsiteLive column is "text".
If we insert single entity, there is no problem with backslashes at all. However, we insert multiple entities with single submitchange, provider puts backslashes for every object. On the other hand if we submitchange in every insert there is no problem at all as well. I give code example and db monitor logs at below.
By the way, we have no problem on single update or multiple updates at all.
I guess multiple inserts with single submitchange should use parameters on insert or dotConnect should generate insert commands with "E''".
NO BACKSLASHES
Code: Select all
using (var devartModelPostgreSql = new DevartModel())
{
devartModelPostgreSql.DeferredLoadingEnabled = false;
devartModelPostgreSql.PageTemplateMlcs.InsertOnSubmit(new PageTemplateMlc
{
TemplateId = 1,
LanguageId = 1,
TemplateWebsiteLive = @"
"
});
devartModelPostgreSql.SubmitChanges();
}
LOG
Code: Select all
16.11.2011 18:43:40 0,000 Execute: SET autocommit=true Complete
16.11.2011 18:43:40 0,016 Execute: SET datestyle=ISO ; SET client_encoding='LATIN5' Complete
16.11.2011 18:43:40 0,000 Execute: SELECT oid FROM pg_type WHERE typname like 'geometry' Complete
16.11.2011 18:43:40 0,000 Execute: SET search_path TO public; Complete
16.11.2011 18:43:40 0,000 Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:43:40 0,000 Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:43:40 0,000 Prepare: BEGIN Complete
16.11.2011 18:43:40 0,015 Execute: BEGIN Complete
16.11.2011 18:43:40 0,000 Prepare: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:43:40 0,000 Execute: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:43:40 0,000 Commit Complete
16.11.2011 18:43:40 0,000 Prepare: COMMIT Complete
16.11.2011 18:43:40 0,000 Execute: COMMIT Complete
16.11.2011 18:43:40 0,000 Close connection Complete
16.11.2011 18:43:40 0,000 Connection is returned to pool. Pool has 1 connection(s). Complete
BACKSLASHES
Code: Select all
using (var devartModelPostgreSql = new DevartModel())
{
devartModelPostgreSql.DeferredLoadingEnabled = false;
devartModelPostgreSql.PageTemplateMlcs.InsertOnSubmit(new PageTemplateMlc
{
TemplateId = 1,
LanguageId = 1,
TemplateWebsiteLive = @"
"
});
devartModelPostgreSql.PageTemplateMlcs.InsertOnSubmit(new PageTemplateMlc
{
TemplateId = 2,
LanguageId = 2,
TemplateWebsiteLive = @"
"
});
devartModelPostgreSql.SubmitChanges();
}
LOG
Code: Select all
16.11.2011 18:42:39 0,000 Execute: SET autocommit=true Complete
16.11.2011 18:42:39 0,000 Execute: SET datestyle=ISO ; SET client_encoding='LATIN5' Complete
16.11.2011 18:42:39 0,000 Execute: SELECT oid FROM pg_type WHERE typname like 'geometry' Complete
16.11.2011 18:42:39 0,000 Execute: SET search_path TO public; Complete
16.11.2011 18:42:39 0,000 Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:42:39 0,016 Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:42:39 0,000 Prepare: BEGIN Complete
16.11.2011 18:42:39 0,000 Execute: BEGIN Complete
16.11.2011 18:42:39 0,016 Execute: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES (1, 1, '\\\\\\\\\\\\\\\\\\', NULL, NULL, NULL) ; INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES (1, 2, '\\\\\\\\\\\\\\\\\\', NULL, NULL, NULL) ; Complete
16.11.2011 18:42:39 0,000 Commit Complete
16.11.2011 18:42:39 0,000 Prepare: COMMIT Complete
16.11.2011 18:42:39 0,000 Execute: COMMIT Complete
16.11.2011 18:42:39 0,015 Close connection Complete
16.11.2011 18:42:39 0,015 Connection is returned to pool. Pool has 1 connection(s). Complete
NO BACKSLASHES
Code: Select all
using (var devartModelPostgreSql = new DevartModel())
{
devartModelPostgreSql.DeferredLoadingEnabled = false;
devartModelPostgreSql.PageTemplateMlcs.InsertOnSubmit(new PageTemplateMlc
{
TemplateId = 1,
LanguageId = 1,
TemplateWebsiteLive = @"
"
});
devartModelPostgreSql.SubmitChanges();
devartModelPostgreSql.PageTemplateMlcs.InsertOnSubmit(new PageTemplateMlc
{
TemplateId = 2,
LanguageId = 2,
TemplateWebsiteLive = @"
"
});
devartModelPostgreSql.SubmitChanges();
}
LOG
Code: Select all
16.11.2011 18:46:53 n/a dotConnect for PostgreSQL monitoring is started Complete
16.11.2011 18:46:53 0,000 Creating pool manager Complete
16.11.2011 18:46:53 0,000 Creating pool with connections string: Complete
16.11.2011 18:46:53 0,000 Creating object Complete
16.11.2011 18:46:53 0,093 Open connection: Complete
16.11.2011 18:46:53 0,000 Connect: Complete
16.11.2011 18:46:53 0,016 Execute: SELECT version() Complete
16.11.2011 18:46:53 0,000 Execute: show integer_datetimes Complete
16.11.2011 18:46:53 0,000 Execute: show bytea_output Complete
16.11.2011 18:46:53 0,000 Execute: SET autocommit=true Complete
16.11.2011 18:46:53 0,015 Execute: SET datestyle=ISO ; SET client_encoding='LATIN5' Complete
16.11.2011 18:46:53 0,000 Execute: SELECT oid FROM pg_type WHERE typname like 'geometry' Complete
16.11.2011 18:46:53 0,000 Execute: SET search_path TO public; Complete
16.11.2011 18:46:53 0,000 Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:46:53 0,000 Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:46:53 0,000 Prepare: BEGIN Complete
16.11.2011 18:46:53 0,016 Execute: BEGIN Complete
16.11.2011 18:46:54 0,000 Prepare: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:46:54 0,000 Execute: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:46:54 0,000 Commit Complete
16.11.2011 18:46:54 0,000 Prepare: COMMIT Complete
16.11.2011 18:46:54 0,000 Execute: COMMIT Complete
16.11.2011 18:46:54 0,000 Close connection Complete
16.11.2011 18:46:54 0,000 Connection is returned to pool. Pool has 1 connection(s). Complete
16.11.2011 18:46:54 0,000 Open connection: Complete
16.11.2011 18:46:54 0,000 Taking connection from connection pool:
Complete
16.11.2011 18:46:54 0,000 Connection is taken from pool. Pool has 1 connection(s). Complete
16.11.2011 18:46:54 0,000 Execute: SET search_path TO public; Complete
16.11.2011 18:46:54 0,015 Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:46:54 0,000 Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED Complete
16.11.2011 18:46:54 0,000 Prepare: BEGIN Complete
16.11.2011 18:46:54 0,000 Execute: BEGIN Complete
16.11.2011 18:46:54 0,000 Prepare: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:46:54 0,000 Execute: INSERT INTO public.page_template_mlc (template_id, language_id, template_website_live, template_website_beta, template_mobile_live, template_mobile_beta) VALUES ($1, $2, $3, $4, $5, $6) Complete
16.11.2011 18:46:54 0,000 Commit Complete
16.11.2011 18:46:54 0,000 Prepare: COMMIT Complete
16.11.2011 18:46:54 0,000 Execute: COMMIT Complete
16.11.2011 18:46:54 0,000 Close connection Complete
16.11.2011 18:46:54 0,000 Connection is returned to pool. Pool has 1 connection(s). Complete