Контроллер:
public ActionResult Index()
{
var Cs = new List<Customer>();
using (JoinEntities db = new JoinEntities())
{
Cs = (from p in db.Customers
join e in db.Orders on p.ID equals e.Customer_id
where p.Name == "Rama"
select p).ToList();
}
return View(Cs);
}
Вид:
@model IEnumerable<JOIN.Models.Customer>
@{
ViewBag.Title = "Home Page";
}
<table class = "table table-condensed table-hover">
<thead>
<tr>
<td>First Name</td>
<td>salary</td>
<td>age</td>
<td>amount</td>
</tr>
</thead>
<tbody>
@foreach (var per in Model)
{
<tr>
<td>@per.ID</td>
<td>@per.Name</td>
<td>@per.Age</td>
<td>@per.Amount</td>
</tr>
}
</tbody>
</table>
В приведенном выше представлении кода требуется только один столбец таблицы, как я могу получить другие столбцы таблицы в таблице клиентов. Идентификатор таблицы является первичным ключом, а таблица заказов customer_id является внешним ключом.
customer таблица: идентификатор, имя, возраст, столбцы зарплатыorder таблица: oid, дата, customer_id, столбцы суммы




Вам нужно создать другую модель, например
class MyModel{
public string Name{get;set;}
public DateTime Date {get;set;}
}
И изменить в запросе выбора:
var Cs = new List<MyModel>();
using (JoinEntities db = new JoinEntities())
{
Cs = (from p in db.Customers
join e in db.Orders on p.ID equals e.Customer_id
where p.Name == "Rama"
select new MyModel {
Name = p.Name,
Date = e.date
}).ToList();
}
Создайте еще одну модель просмотра, как показано ниже.
public class CustomerOrderViewModel
{
public int CustomerId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public double Salary { get; set; }
public int OrderId { get; set; }
public DateTime Date { get; set; }
public double Amount { get; set; }
}И обновите метод индекса, как показано ниже.
public ActionResult Index()
{
using (JoinEntities db = new JoinEntities())
{
var customerOrderList = (from p in db.Customers
join e in db.Orders on p.ID equals e.Customer_id
where p.Name == "Rama"
select new CustomerOrderViewModel {
CustomerId = p.Id,
Name = p.Name,
Age= p.Age,
Salary = p.Salary,
OrderId= e.Id,
Date= e.Date,
Amount = e.Amount
}).ToList();
return View(customerOrderList);
}
}И измените модель представления вашего вида на
@model IEnumerable<JOIN.Models.CustomerOrderViewModel>
Большое спасибо, братан, теперь он отлично работает в вашем коде выше, используя оператор u, r, не добавляя список
Вы можете создать класс модели представления со свойством как таблицы клиентов, так и таблицы заказов и можете использовать эту модель представления в предложении выбора.