0

У меня есть VS 2012 Update 4, и я установил EF6 Tools for VS2012.EF6 и VS 2012 - генерирует неисправный код для хранимых процедур

Подход: сначала база данных.

При попытке создания хранимых процедур сгенерированный код ссылается на неправильное пространство имен ... Итак, теперь я могу обновить пространство имен в моем .tt-файле, но сгенерированный метод ожидает, что массив ObjectResult не является объектом ObjectResult.

Это неправильно:

public virtual ObjectResult<CustOrdersDetail_Result> CustOrdersDetail(Nullable<int> orderID) 
     { 
      var orderIDParameter = orderID.HasValue ? 
       new ObjectParameter("OrderID", orderID) : 
       new ObjectParameter("OrderID", typeof(int)); 

      return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<CustOrdersDetail_Result>("CustOrdersDetail", orderIDParameter); 
} 

и этот код работает:

public virtual ObjectResult<CustOrdersDetail_Result> CustOrdersDetail(Nullable<int> orderID) 
      { 
       var orderIDParameter = orderID.HasValue ? 
       new ObjectParameter[]{ new ObjectParameter("OrderID", orderID)} : 
        new ObjectParameter[]{ new ObjectParameter("OrderID", typeof(int))}; 

       return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<CustOrdersDetail_Result>("CustOrdersDetail", orderIDParameter); 
    } 

Теперь я могу исправить массива вещь вручную, но после генерации кода EDMX он не будет, конечно .. .

Я также посмотрел на Ladislav's answer, но без успеха:

Есть ли исправление для этого?

+1

У вас все еще есть старые файлы tt. Попробуйте удалить старые файлы tt + сгенерированный код и повторно добавить элемент генерации кода для DbContext. –

+0

Хм, я сделал пару настроек в файлах tt, это будет какая-то работа. Что вы говорите, добавьте новый элемент генерации кода для DbContext? Я делаю DB Во-первых, я добавляю ADO.NET Entity Data Model, и это на самом деле все, что я делаю. Итак, вы имеете в виду, удалить всю модель и повторно добавить ее? – Legends

ответ

1

Чтобы добавить элемент генерации кода, удалите все сгенерированные файлы из модели и щелкните правой кнопкой мыши по модели и выберите элемент нового поколения. Вы никогда не должны модифицировать файлы tt. Я думаю, что есть способ внедрить таможенный генератор, иначе при новом обновлении элемента генерации трудно внести изменения в новую версию, так как все ваши изменения в файлах TT теряются.

+0

На самом деле есть части, которые вы можете изменить, и они не будут переопределены, только сгенерированные части не могут быть изменены, так как они будут потеряны при обновлении файла edmx. – Legends

Смежные вопросы