не может передать параметры через EF в базу данных Oracle - PullRequest
0 голосов
/ 01 мая 2011

Как видно из названия, я получил "ORA-00932: inconsistent datatypes: expected - got NCLOB" при передаче строкового значения с помощью linq через Entity Framework.

Я использую VS 2010, ODAC 2011 с поддержкой EF.

Я попытался передать само значение (без переменной, но напрямую, используя ""), и оно просто работало нормально, я проверил мою переменную, и да, все в порядке, и она дает правильное значение.Я предполагаю, что это где-то ошибка, и значение строки неправильно достигает Oracle, кто-нибудь сталкивался с этим?Любая работа arround?

Заранее спасибо

public ObservableCollection<String> getCarModels(string carName)
{
    carContext = new Entities();
    carModelNamesList = new ObservableCollection<string>();
    var result = from d in carContext.CARs
                 where d.NAME == carName
                 select d;
    foreach (CAR d in result)
    {
        string f = d.MODEL;
        carModelNamesList.Add(f);
    }
    return carModelNamesList;           
}

Ответы [ 3 ]

2 голосов
/ 20 декабря 2011

Я получил ту же ошибку при попытке сравнить varchar2 со значением String.Empty в моем предложении Where.Это заставило меня много потерять время, пытаясь выяснить, что происходит.Я полагаю, вы должны быть осторожны в своих условиях, потому что Oracle может быть очень разборчивым!

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

ребята, извините, это плохо, переменная равна нулю, когда произошло событие, в моем способе тестирования использовалось другое событие, поэтому переменная имеет правильное значение, когда произошло мое тестовое событие, и имеет значение null, когда действительное событие произошло, я надеюсь, что это может кому-то помочь.

0 голосов
/ 30 марта 2012

Я также хотел добавить, что наша команда только что получила эту же ошибку, и она была устранена путем обновления Entity Model из базы данных. Я изменил конструктор, чтобы сделать столбец обнуляемым, но, думаю, это был не самый чистый способ сделать это, так как это «запутало» движок EF. После обновления из базы данных она закодировала так, как она хотела видеть обнуляемый столбец в коде конструктора, и после этого у нас все получилось.

Конечно, мы понятия не имеем, что на самом деле происходило за кулисами EF и почему это могло бы сбить его с толку. Похоже, ошибка. Почему мы не можем настраивать атрибуты столбца непосредственно в конструкторе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...