Невозможно использовать хранимую процедуру с моей Entity Framework v4 + POCO :( - PullRequest
5 голосов
/ 02 августа 2010

У меня очень простой Entity Framework проект с POCO Entities .У меня есть один stored procedure, который я импортировал, используя EF Wizard.Kewl.

Затем я сделал свой собственный EF Entity, который я затем Add Function Import сопоставил Stored Procedure с моим EF Entity.

Теперь ... я 'Я не уверен, как сопоставить мой EF Entity с POCO.Таким образом, я получаю следующую ошибку:

Ошибка 11007: тип сущности 'XXXXX' не сопоставлен.

Я не уверен, как можно сопоставить этосубъект к POCO.Кто-нибудь может помочь, пожалуйста?

1 Ответ

6 голосов
/ 03 августа 2010

s'OK.это то, что я в итоге сделал.

Использование POCO

Т.е..edmx, Custom Tool удалены / нет автоматически сгенерированных объектов и т. д.

  1. Функция импорта :: вручную импортируйте хранимую процедуру.

В вашем контекстекласс ...

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)

  1. Создание пользовательского КОМПЛЕКСНОГО ТИПА (который будет использоваться длятакже сопоставьте хранимую процедуру).
  2. Функция импорта :: вручную импортируйте хранимую процедуру.
  3. Сопоставьте ТИП ВОЗВРАТА (импортированного sp) с пользовательским ТИПОМ КОМПЛЕКСА, который вы сделали.

Это все.

Не уверен, что мой способ POCO - лучший способ сделать что-то, но это .. хорошо .. работает :)

И это связанный вопрос StackOverflow, который я задал об использовании этой хранимой процедуры способом services / IQueryable ...:)

...