2016-05-11 4 views
-1

Мой файл контроллера содержится ниже.Невозможно неявно преобразовать тип 'System.Data.Linq.ISingleResult <""> в' System.Collections.Generic.IEnumerable <" ">. Существует явное преобразование?

public ActionResult Index() 
{ 
    CityNameList ct = dt.AllCity(); /*Returns Citynames. Used Linq to Sql Classes to retrieve from DB. */ 

    return View(ct); 
} 

И в CityNameList.cs файл в модели

public class CityNameList 
{ 
    public IEnumerable<string> CityName {get;set;} 
} 

действительно пытался много решить проблему, но не использовать. Я новичок в MVC. Мне нужна четкая идея передать данные в «Вид» из результата «Хранимая процедура в контроллере».

+0

Укажите код в AllCity() – JDupont

+0

Не могли бы вы добавить дополнительную информацию о своей программе и на какой строке вы получите сообщение об ошибке? Я бы предположил, что вы пытаетесь присвоить значение типа SingleResult для CityName, которое является IEnumerable , но вы не предоставляете много информации об этом. – Auguste

+0

@JDupont - AllCity() - это имя хранимой процедуры, вызываемой через классы Linq to Sql, а dt - это объектный контекст данных в классах L2SQL ............. Еще одна вещь, которую мне нужно изменить ничего в файле CityNmaeList.cs .. ?? – Abhi

ответ

0

Похоже, вы используете LinqToSql. Если хранимая процедура возвращает ISingleResult, вам необходимо перечислить результат для получения данных. Вы можете вызвать ToList(), чтобы преобразовать результат в IEnumerable. Кроме того, похоже,

var result = dt.AllCity(); 
CityNameList ct = null; 
if (result != null && result.Any()) { 
    ct = new CityNameList { CityName = result.ToList()}; 
} 
return View(ct); 
+0

@ vendettamit - Не использовать. Похожая ошибка - Невозможно неявно преобразовать тип 'System.Collections.Generic.List ' в 'System.Collections.Generic.IEnumerable '. Явное преобразование существует (вы пропускаете листинг?) ..... Все, что мне нужно, отобразить вывод хранимой процедуры в класс CityNamelist.cs для строго типизированного представления. – Abhi

-1

Изменение CityNameList свойств класса, ниже:

public class CityNameList 
    {  
     public string CityName{ get; set; } 
    } 

и добавить еще один класс для отображения хранимой процедуры вывода для класса CityNameList, как показано ниже.

public class CityDataContext 
{ 
    DataDataContext dt = new DataDataContext(); 
    public IEnumerable<CityNameList> DisplayName 
    { 
     get 
     { 
      List<CityNameList> Details = new List<CityNameList>(); 
      var result = dt.AllCity().ToList(); 
      for (int j = 0; j < result.Count;j++) 
      { 
       CityNameList city = new CityNameList(); 
       city .CityName= Convert.ToString(result[j].cityname); 

       Details.Add(city); 
      } 
      return Details; 
     } 
    } 
} 

Где CITYNAME в цикл является имя столбца таблицы, которая будет возвращаться после выполнения хранимой процедуры в БД, и, наконец, добавить сильно типизированных с моделью класса CityNameList.It будет работать нормально ....

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

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