Параметры Entity Framework, devArt и Oracle VarChar - PullRequest
1 голос
/ 03 мая 2011

Здравствуйте. Я использую Oracle Connect DevArt для работы с POCO и Oracle Entity Framework 4.1.

У меня проблема с некоторыми запросами, в которых тип столбца Oracle имеет тип Char (фиксированной длины).Параметр, который используется в сгенерированном запросе SQL, форматируется как VarChar вместо Char, и это заставляет мои запросы возвращать ноль строк.Есть ли какой-нибудь способ заставить EntityFramework / DevArt заполнить параметр?

Вот пример проблемы (запрос имени пользователя).Этот код должен возвращать строки, но это не так.


string aUserName = "Test";
var query = from u in users
            where u.UserName == aUserName
            select u;

Если я изменю первую строку кода на:

string aUserName = "Test".PadRight(20);

Тогда он работает (столбец Oracle - Char (20)).Я хотел бы не делать заполнение (мне не нужно с SQL Server).Могу ли я внести какие-либо изменения в конфигурацию?Переключатель строки подключения?Атрибут моего POCO?

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

У вас есть два варианта:
1. Сделайте то, что вы сделали, и добавьте строковую переменную имени пользователя.
2. удалить пустые символы - обрезать справа поле имени пользователя.

Другой вариант:

string aUserName = "Test";
var query = users.select(x => string.Join(string.Empty, x.UserName).TrimEnd()).
                  where(x => x==aUserName)

(это вернет вам имена пользователей, а не целые объекты пользователя)

Надеюсь, это поможет.

1 голос
/ 10 мая 2011

Мы ответили вам здесь на нашем форуме.
Пожалуйста, сообщите нам, если у вас возникнут проблемы с предоставленным решением.

...