2016-05-11 8 views
0

В настоящее время я создал ViewModel, и изначально я собирался просто перечислить «Статус» в виде строки, но теперь я решил сделать его в DropDownList. У меня есть CallStatus как объект объекта. Итак, я решил, что могу просто создать список типов «CallStatus», а затем, когда я создаю свой ViewModel, просто вызовите db.CallStatus.ToList(), чтобы заполнить его. Затем я бы использовал этот список для создания моего DropDownList. Тем не менее, я получаю сообщение об ошибке «Невозможно неявно преобразовать тип« System.Collections.Generic.List »в CPPCallStatus.Models.CallStatus»Невозможно добавить объект в список в ViewModel?

Вот моя виртуальная машина. Я добавил CallStautsTypes внизу, и это то, что я пытаюсь заполнить.

public class CustomerCallVM 
{ 
    public int Id { get; set; } 

    [DisplayName("Customer Name")] 
    public string CustomerName { get; set; } 

    public string Subject { get; set; } 

    public string Comment { get; set; } 

    [DisplayName("Call Date")] 
    public DateTime? CallDate { get; set; } 

    public int? Status { get; set; } 

    [DisplayName("Status")] 
    public string StatusName { get; set; } 

    public int? AssignedTo { get; set; } 

    [DisplayName("Assigned To")] 
    public string AssignedToName { get; set; } 

    [DisplayName("Create Date")] 
    public DateTime? CreateDate { get; set; } 


    public CallStatus CallStatusTypes { get; set; } 
} 

Вот мой репо, где я заполняю виртуальную машину. Я знаю, что мне нужно будет удалить .include в Lambda, но я не думаю, что это проблема на данный момент.

public CustomerCallVM SelectById(int? id) 
{ 
    using (DataContext db = new DataContext()) 
    { 
     db.Configuration.AutoDetectChangesEnabled = false;  

     CustomerCallVM customerCall = new CustomerCallVM(); 

     var call = db.CustomerCalls.Include(s => s.CallStatus).Where(c => c.Id == id).FirstOrDefault(); 

     if (call != null) 
     { 
      customerCall.Id = call.Id; 
      customerCall.CustomerName = call.CustomerName; 
      customerCall.Subject = call.Subject; 
      customerCall.Comment = call.Comment; 
      customerCall.CallDate = call.CallDate; 
      customerCall.Status = call.Status; 
      customerCall.AssignedTo = call.AssignedTo; 

      customerCall.StatusName = call.CallStatus.StatusName; 

      customerCall.CallStatusTypes = db.CallStatus.ToList(); 
     } 

    return customerCall; 
} 

ответ

4

Изменение этой линии

public CallStatus CallStatusTypes { get; set; } 

в

public IEnumerable<CallStatus> CallStatusTypes { get; set; } 

Как говорится в сообщении, вы пытаетесь конвертировать List<CallStatus> в CallStatus здесь: customerCall.CallStatusTypes = db.CallStatus.ToList();

+1

достаточно легко ... .Подумал, что один сам по себе, но иногда вы смотрите на вещи долго и пропустите что d очевидны. Благодаря! – Caverman

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