0

Это мои моделиОтправить информацию к виду из другой таблицы с навигационным свойством?

public class Product 
{ 
    [Key] 
    public int SerialNumber { get; set; } 
    public int PartNumber { get; set; } 
    public string Description { get; set; } 

    public virtual ICollection<Reading> Reading { get; set; } 
} 

public class Reading 
{ 
    [Key] 
    public int Id { get; set; } 
    public int SerialNumber { get; set; } 
    public int ReadingValue { get; set; } 
    public virtual Product Product { get; set; } 
} 

Я могу послать все продукты к просмотру с

return View(db.Products.ToList().Where(product => product.CustomerID == Customer)); 

И я могу получить последнюю ReadingValue, если я знаю, что SERIALNUMBER Продукт

 var LatestReading = db.Readings.OrderByDescending(m => m.Id).Where(s => s.SerialNumber == SerialNumber).Select(m => m.ReadingValue).FirstOrDefault(); 

Как могу ли я отправить все продукты на просмотр с помощью последнего ReadingValue для каждого продукта?

ответ

0

Создать новую модель представления, которая будет содержать как данные:

public class FooViewModel 
{ 
    public List<Product> Products { get; set; } 
    public Reading LatestReading { get; set; } 
} 

изменить вид использовать новую модель с:

@model FooViewModel 

Затем отправить их обратно в контроллере:

var model = new FooViewModel(); 
model.Products = db.Products.ToList().Where(product => product.CustomerID == Customer); 
model.LatestReading = db.Readings.OrderByDescending(m => m.Id).Where(s => s.SerialNumber == SerialNumber).Select(m => m.ReadingValue).FirstOrDefault(); 

return View(model); 
0

Поскольку у вас есть Reading недвижимость в Products класс, вы можете получить l ATEST ReadingValue в представлении:

foreach(Product product in Model) 
{ 
    var latestReadingValue = product.Reading.OrderByDescendin(m => m.Id).FirstOrDefault(); 
    // do what you want here 
} 

но hutchonoid указывает на лучший вариант создает ViewModel для него, потому что наличие логики в представлении это плохая практика, и это не соответствует MVC шаблон.