Сначала мне нужно подключить систему к оракулу, используя модель объекта. У меня есть модель с сущностью "Entity1". "MyBool", как следует из названия, является логическим свойством.
Я успешно сгенерировал сценарий sql из модели и запустил его в базе данных оракула.
Тогда у меня есть этот код:
static void Main(string[] args)
{
Model1Container context = new Model1Container();
Entity1 entity = context.Entity1.FirstOrDefault();
}
Этот код выдает это исключение:
Указанная схема недействительна. Ошибки: Model1.msl(8,12): ошибка 2019: указанное сопоставление элементов недопустимо. Тип Edm.Boolean[Nullable=False,DefaultValue=] члена MyBool в типе Model1.Entity1 несовместим с OracleEFProvider.number[Nullable=False,DefaultValue=,Precision=1,Scale=0 ]» члена «MyBool» в типе «Model1.Store.Entity1».
Я прочитал много тем, и многие люди сказали добавить:
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
</settings>
</oracle.dataaccess.client>
В файле конфигурации (в моем случае это консольное приложение, затем app.config). Но это ничего не изменило. Действительно, я могу установить любое значение этого параметра, и ошибка будет точно такой же. Похоже, этот параметр не читается.
Затем некоторые люди сказали: добавьте в проект DLL Oracle.DataAccess. Что я и сделал, и результаты были такими же.
Я знаю, что есть много тредов на эту тему, но любой из них мне помог, и я не знаю, что еще делать. Просто хочу отметить, что моя реальная модель приложения уже работает на Sql Server.