s'OK.это то, что я в итоге сделал.
Использование POCO
Т.е..edmx
, Custom Tool
удалены / нет автоматически сгенерированных объектов и т. д.
- Функция импорта :: вручную импортируйте хранимую процедуру.
В вашем контекстекласс ...
public class SqlServerContext : ObjectContext, IUnitOfWork
{
public SqlServerContext(EntityConnection entityConnection,
ILoggingService loggingService)
: base(entityConnection) { .... }
public ObjectResult<Location> FindLocationsWithinABoundingBox(decimal upperLeftLongitude,
decimal upperLeftLatitude,
decimal lowerRightLongitude,
decimal lowerRightLatitude)
{
return base.ExecuteFunction<Location>("FindLocationsWithinABoundingBox",
new ObjectParameter("UpperLeftLatitude", upperLeftLongitude),
new ObjectParameter("UpperLeftLongitude", upperLeftLatitude),
new ObjectParameter("LowerRightLongitude", lowerRightLongitude),
new ObjectParameter("LowerRightLatitude", lowerRightLatitude));
}
}
Использование автоматически сгенерированных объектов и т. д. (по умолчанию настроен EF)
- Создание пользовательского КОМПЛЕКСНОГО ТИПА (который будет использоваться длятакже сопоставьте хранимую процедуру).
- Функция импорта :: вручную импортируйте хранимую процедуру.
- Сопоставьте ТИП ВОЗВРАТА (импортированного sp) с пользовательским ТИПОМ КОМПЛЕКСА, который вы сделали.
Это все.
Не уверен, что мой способ POCO - лучший способ сделать что-то, но это .. хорошо .. работает :)
И это связанный вопрос StackOverflow, который я задал об использовании этой хранимой процедуры способом services / IQueryable ...:)