Я новичок в MVC и использую шаблон хранилища в попытке выбрать данные, содержащие два объекта, для возврата к строго типизированной модели представления,
Я немного застрял в том, что лучший способ сделать это,
Обе таблицы связаны полем идентификатора клиента, у меня настроен интерфейс репозитория и шаблон отображения, который строго типизирован для модели представления, которая содержит свойства для объекта Customer и объекта Site, все, что мне нужно отобразить список сайтов клиентов вместе с соответствующим именем клиента из таблицы клиентов.
В шаблоне отображения у меня есть следующее
<%= Html.DisplayFor(x => x.Customers.CustomerName) %>
<%= Html.DisplayFor(x => x.Customers.Site.AddressLine1) %>
У меня работает этот шаблон отображения, но моя модель пуста.
Когда я запутался, как определить эти данные в интерфейсе и репозитории и как вернуть данные в мою модель, чтобы просто вернуть свой список клиентов, я использую это в своем интерфейсе
IQueryable<Customer> Customers { get; }
Затем просто выберите LINQ.
Но так как эти данные будут содержать как клиентов, так и сайты клиентов, я не уверен, как определить это в интерфейсе?
Также будет ли LINQ-соединение подходящим методом для возврата этих данных в мою viewmodel? что-то вроде
var Customers =
from c in customers
join cs in customerSites on c equals cs.CustomerId into ps
from p in ps
select new { Customer = c, cs.CustomerName };
ОБНОВЛЕНИЕ =========
Это код, который я использую в модели представления, который строго введен в шаблон отображения,
public class CustomerViewModel
{
public int Id { get; set; }
public string CustomerName { get; set; }
public string PrimaryContactName { get; set; }
public SiteViewModel Site { get; set; }
}
Это как заполнить модель в репозитории / контроллере обоими объектами для отображения в списке, с которым я борюсь.