Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса / 19 сообщений из 19, страница 1 из 1
08.07.2014, 21:26
    #38691143
AspUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
Добрый вечер! Подскажите как настраивается кодировка или как исправить/повлиять?

моя строка подключения
Код: xml
1.
2.
3.
 <add name="Alternativa" connectionString=
"Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\project_2013\AP_1\AP_1\App_Data\ap1.mdf;Integrated Security=True;
Connect Timeout=30" providerName="System.Data.SqlClient" />



Код: c#
1.
2.
pr = context.Products.Add(pr); //смотрю отладчиком pr содержит свойства с нормальным отображение русского
context.SaveChanges();         //к сожалению в таблице SQL все русские буквы оказываются заменены знаком вопроса 
...
Рейтинг: 0 / 0
08.07.2014, 23:01
    #38691196
AspUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
Решил вопрос пересоздав таблицу в БД заменив все типы varchar на nvarchar.
...
Рейтинг: 0 / 0
08.07.2014, 23:24
    #38691209
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
AspUserРешил вопрос пересоздав таблицу в БД заменив все типы varchar на nvarchar.Хм, а можно было Collation у базы нужный выставить. Или помимо русского ещё и китайский будете в БД хранить?
...
Рейтинг: 0 / 0
08.07.2014, 23:57
    #38691239
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAХм, а можно было Collation у базы нужный выставить. Или помимо русского ещё и китайский будете в БД хранить?

nvarchar это правильно. varchar + collation это неправильно. кроме «китайского» есть много другого юнико́да®. и вообще, варчары давно уже пора выкинуть на помойку.
...
Рейтинг: 0 / 0
09.07.2014, 00:10
    #38691246
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
hVosttskyANAХм, а можно было Collation у базы нужный выставить. Или помимо русского ещё и китайский будете в БД хранить?

nvarchar это правильно. varchar + collation это неправильно. кроме «китайского» есть много другого юнико́да®. и вообще, варчары давно уже пора выкинуть на помойку.Какой такой varchar + collation? У базы выставляешь collation, а не у поля. И там где надо используешь nvarchar, где много "другого юнико?да®", а где не надо не используешь.
...
Рейтинг: 0 / 0
09.07.2014, 00:45
    #38691267
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAКакой такой varchar + collation? У базы выставляешь collation, а не у поля. И там где надо используешь nvarchar, где много "другого юнико?да®", а где не надо не используешь.

и в чём заключается удовольствие контролировать, где varchar, а где nvarchar? в чём профит? в экономии? в целом экономический аспект должен быть действительно оправдан, чтобы допустить такое разнообразие.

на минутку я представил себе, если бы в .NET были строки типа nstring и string ... после возни с мультиба́йтовыми строками в C++, это где-то недалеко от границ а́да.
...
Рейтинг: 0 / 0
09.07.2014, 00:57
    #38691275
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
hVostt, что тут неправильного-то? Ты знаешь какие данные и какого типа будут храниться в БД и используешь этот тип.
...
Рейтинг: 0 / 0
09.07.2014, 01:00
    #38691276
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
hVostt, в чём ад? Коды валют, городов, аэропортов вдруг перестанут быть тремя латинскими символами? Пользователи вдруг захотят, чтобы их имена писали иероглифами?
Давай всё в NVARCHAR(MAX) хранить, а то мало-ли
...
Рейтинг: 0 / 0
09.07.2014, 01:21
    #38691279
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAКоды валют, городов, аэропортов вдруг перестанут быть тремя латинскими символами?

Вообще не аргумент. Валюты, города, аэропорты и рационально выносить в справочники, и сколько там получится при этом экономии? С гулькин нос. А чисто технически лучше получать и записывать данные в .NET сразу в двухбайтовом юникоде, без лишних преобразований.

Другое дело, когда планируется заталкивать много данных. Очень много. Можно прикинуть экономию, и при необходимости сделать varchar. Иначе смысла нет никакого. Даже если там гарантировано будет латиница.
...
Рейтинг: 0 / 0
09.07.2014, 01:28
    #38691281
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAДавай всё в NVARCHAR(MAX) хранить, а то мало-ли

ну, например, в SQLite так и есть
...
Рейтинг: 0 / 0
09.07.2014, 01:30
    #38691282
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAПользователи вдруг захотят, чтобы их имена писали иероглифами?

больше свобод пользователю!
...
Рейтинг: 0 / 0
09.07.2014, 02:01
    #38691291
gandjustas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAhVostt, что тут неправильного-то? Ты знаешь какие данные и какого типа будут храниться в БД и используешь этот тип.

Проблема скорее в непонимании чем отличается varchar и nvarchar и чем грозит неправильный выбор.
...
Рейтинг: 0 / 0
09.07.2014, 02:09
    #38691293
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
gandjustasчем грозит неправильный выбор

пошли страсти
...
Рейтинг: 0 / 0
09.07.2014, 02:18
    #38691297
gandjustas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
hVosttgandjustasчем грозит неправильный выбор

пошли страсти

Страсти пошли с начала топика. А если еще в предикат попадет сравнение с unicode строкой и перестанут работать индексы, то начнется настоящая драма.
...
Рейтинг: 0 / 0
09.07.2014, 07:46
    #38691344
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
Конкретно кто-нибудь что-нибудь скажет про ад и неправильный выбор?
...
Рейтинг: 0 / 0
09.07.2014, 15:48
    #38692081
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
skyANAКонкретно кто-нибудь что-нибудь скажет про ад и неправильный выбор?

на помойку varchar.
...
Рейтинг: 0 / 0
09.07.2014, 16:10
    #38692128
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
hVosttна помойку varchar.
Может пригодится, как защита на уровне базы, от попадания туда невалидной строки.
К примеру, если я храню таким образом телефон.
...
Рейтинг: 0 / 0
09.07.2014, 16:21
    #38692144
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
Китайцы не смогут заинжектить туда свой лозунг. ))
...
Рейтинг: 0 / 0
09.07.2014, 16:37
    #38692158
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса
Парамонкак защита на уровне базы, от попадания туда невалидной строки

я считаю, что валидация должна быть исключительно программная (не считая foreign key).
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / При работе через EntityFramework в sql таблицу заходят русские буквы знаками вопроса / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]