![](/img/trans.png)
[英]Using Or and Select in a Where clause to compare all entries with an int, with lambda expressions
[英]Joins with more than 2 or 3 tables, with Where clause using Lambda Expressions. Then sending the object to the View
我已經成功創建了查詢,可以通過lambda表達式以及其他方式從6個表中獲取數據。 (對不起,我不知道該如何應用其他方法)。 無論如何,現在的問題是,我不知道如何將該對象發送到視圖。 通常,我曾經發送過模型或ViewModel的對象。 請幫忙!
提前非常感謝您!
我嘗試創建ViewModel並包括了查詢中包含的所有對象,但是我無法解決它們。 可能是錯誤的策略,或者我只是不知道該怎么做。
var my = _context.Clients.Join(_context.Consultants, cli => cli.consultantID, con => con.ConsultantId,
(cli, con) => new
{
aClient = cli,
aConsultant = con
}).Join(_context.ClientPhone.Where(ph => ph.PrimaryPhone), cli => cli.aClient.ClientCNIC, ph => ph.ClientCNIC, (cli, ph) => new
{
cli.aClient,
cli.aConsultant,
aPhone = ph
}).Join(_context.clientemail.Where(e => e.PrimaryEmail), cli => cli.aClient.ClientCNIC, e => e.ClientCNIC, (cli, e) => new
{
cli.aClient,
cli.aConsultant,
cli.aPhone,
aEmail = e
}).Join(_context.ITRStatus, cli => cli.aClient.ClientCNIC, itr => itr.ClientCNIC, (cli, itr) => new
{
cli.aClient,
cli.aConsultant,
cli.aEmail,
cli.aPhone,
aItr = itr
}).Join(_context.ClientStatus, cli => cli.aItr.ClientstatusId, ss => ss.clientstatusId, (cli, ss) => new
{
cli.aClient,
cli.aConsultant,
cli.aEmail,
cli.aItr,
cli.aPhone,
aStatus = ss
}).Select(s => new
{
s.aClient.clientName,
s.aClient.ClientCNIC,
s.aClient.ClientPassword,
s.aConsultant.ConsultantName,
s.aEmail.Email,
s.aPhone.Phone,
s.aStatus.StatusString
}).ToList();
return View(my);
我期望的結果是,我以某種方式通過Model將對象發送到View,然后使用foreach在View中迭代模型。
您可以在視圖中執行@model dynamic之類的操作。 這樣,您可以直接將變量“ my”傳遞給它。
順便說一句,您將失去模型的IntelliSense
顯然,我嘗試了幾種方法並找到了解決自己問題的方法!
這是我所做的。
只需為查詢中包含的對象創建視圖模型。 然后在控制器中如下:
var viewModel = new List<ClientIndexViewModel>();
foreach (var item in my)
{
viewModel.Add(new ClientIndexViewModel()
{
Client = item.aClient,
Phone = item.aPhone,
Consultant = item.aConsultant,
Email = item.aEmail,
ClientStatus = item.aStatus,
});
}
return View(viewModel);
View.cshtml
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@item.Client.clientName
</td>
</tr>
它是動態的,並且也提供IntelliSense。 順便說一句,我剛剛發布了足以理解的代碼部分,請原諒任何不足。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.