1
我想從3個表中顯示選擇性信息。 我已經嘗試過DTO,但無法表示視圖中的數據。 我也嘗試過使用匿名類型,但無法將其投影到InboxViewModelDTO類型的模型。無法將匿名類型投影到模型類型。 (實體或複雜類型不能在LINQ to Entities查詢中構建。)
下面是ActionResult的,
public ActionResult Inbox()
{
IEnumerable<InboxViewModelDTO> model = null;
AccountDbContext db = new AccountDbContext();
int? currentUserID = 0;
currentUserID = Convert.ToInt32(Session["UserId"]);
model = (from a in db.rommateDatabase
join b in db.userAccounts on a.UserID equals b.UserId
join c in db.messaging on b.UserId equals c.FromUserID
where b.UserId == currentUserID
select new InboxViewModelDTO()
// select new
{
UserID = b.UserId,
FirstName = b.FirstName,
LastName = b.LastName,
RequestID = a.ID,
MessageMail = c.MessageMail
}).ToList();
return View(model);
}
我創建了一個DTO類
public class InboxViewModelDTO
{
[Key]
public int MessageID {get;set;}
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int RequestID { get; set; }
public string MessageMail { get; set; }
}
這裏是查看
@model List<RegistrationLogin.Models.InboxViewModelDTO> @foreach (var
item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.UserID)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.RequestID)
</td>
<td>
@Html.DisplayFor(modelItem => item.MessageMail)
</td>
</tr>
明白了。謝謝Jitendra :) –