Я играл с EF за последние пару дней. Наши приложения основаны на базе SQL Anywhere 10, и весь наш доступ к данным осуществляется через хранимые процедуры. Поскольку EF не поддерживается SA 10, я тестирую EF с SA 11. С этой целью я создал небольшую базу данных с двумя таблицами и несколькими хранимыми процедурами (на основе базы данных nerddinner из образцов asp.net mvc, см. here) Я создал модель из базы данных, таблиц и хранимых процедур и выполнил импорт необходимых функций. У меня есть хранимая процедура со следующей подписью:Entity Framework + Sql Anywhere 11 + Хранимые процедуры
ALTER PROCEDURE "DBA"."get_dinner"(@dinner_id integer)
BEGIN
select dinner_id, title, event_date, description, hosted_by , contact_phone, address, country, latitude, longitude
from dba.dinners d
where d.dinner_id = @dinner_id
END
И полученный код функции импорта выглядит следующим образом:
public global::System.Data.Objects.ObjectResult<dinner> get_dinner(global::System.Data.Objects.ObjectParameter dinner_id)
{
return base.ExecuteFunction<dinner>("get_dinner", dinner_id);
}
И это проблема. В идеале, сгенерированный код должен принимать параметр целого типа, а не global::System.Data.Objects.ObjectParameter dinner_id
Насколько я вижу, файл EDMX имеет все данные, он должен правильно интерпретировать типы параметров:
<Function Name="get_dinner" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="DBA">
<Parameter Name="dinner_id" Type="int" Mode="InOut" />
</Function>
я упускаю что-то здесь? Что еще нужно для того, чтобы импортировать функцию с соответствующим типом параметра? Можно ли это исправить, отредактировав файл edmx или это проблема реализации поддержки SA11 EF.
Надеюсь, кто-то может дать мне дополнительные подсказки.
Спасибо за ответ. Я попробую изменить файл edmx и посмотреть, работает ли он. Импорт функции, поскольку она генерируется в данный момент, работает, меня раздражает только тип параметра. – Gio2k
Это работает. Надеемся, что проблема с нев параметрами будет решена в ближайшее время. – Gio2k