2016-05-11 14 views
0

現在、私はViewModelを作成しましたが、当初は文字列として "Status"をリストするだけでしたが、今はDr​​opDownListにすることに決めました。私はエンティティオブジェクトとしてこれらのCallStatusを持っています。だから、 "CallStatus"タイプのリストを作成してから、ViewModelを作成するときに、db.CallStatus.ToList()を呼び出してそのデータを設定するだけでいいと思いました。その後、そのリストを使用してDropDownListを作成します。ただし、「System.Collections.Generic.Listを暗黙的にCPPCallStatus.Models.CallStatusに変換できません」というエラーが表示されます。エンティティをリストとしてViewModelに追加できませんか?

ここは自分のVMです。私は下部に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; } 
} 

ここに私のVMにデータを書き込むレポがあります。ラムダで.includeを削除する必要があることは分かっていますが、それは現時点では問題ではないと思います。メッセージのよう

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

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; } 

は、あなたがここにCallStatusList<CallStatus>を変換しようとしている、と言う:十分customerCall.CallStatusTypes = db.CallStatus.ToList();

+1

は簡単...それは私自身のものだと思っていただろうが、時にはあなたは長く物事を見て、どんなショックを逃すのだろうかdは明らかです。ありがとう! – Caverman

関連する問題