現在、私はViewModelを作成しましたが、当初は文字列として "Status"をリストするだけでしたが、今はDropDownListにすることに決めました。私はエンティティオブジェクトとしてこれらの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;
}
は簡単...それは私自身のものだと思っていただろうが、時にはあなたは長く物事を見て、どんなショックを逃すのだろうかdは明らかです。ありがとう! – Caverman