У меня есть 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, но без успеха:
Есть ли исправление для этого?
У вас все еще есть старые файлы tt. Попробуйте удалить старые файлы tt + сгенерированный код и повторно добавить элемент генерации кода для DbContext. –
Хм, я сделал пару настроек в файлах tt, это будет какая-то работа. Что вы говорите, добавьте новый элемент генерации кода для DbContext? Я делаю DB Во-первых, я добавляю ADO.NET Entity Data Model, и это на самом деле все, что я делаю. Итак, вы имеете в виду, удалить всю модель и повторно добавить ее? – Legends