У меня есть два объекта для элементов и изображений. Каждый элемент может иметь несколько изображений, но я хочу вернуть только одно изображение каждого элемента, когда перечисляю элементы.Как использовать FirstOrDefault внутри Include
класс Item
public class Item
{
[Key]
public int ItemID { get; set; }
public string Name{ get; set; }
public string Status{ get; set; }
public virtual ICollection<Picture> Pictures{ get; set; } // Navigation property
}
класс Picture
public class Picture
{
[Key]
public int PictureID { get; set; }
public string Filename{ get; set; }
public string Filepath{ get; set; }
public int ItemID { get; set; } // Foreign Key
public virtual Item Item{ get; set; } // Navigation property
}
Контроллер
public ActionResult Lager()
{
var model = _db.Items.Include(b => b.Pictures.FirstOrDefault()).Where(i =>
i.Status == 0)
return View(model);
}
Я получаю эту ошибку от моего контроллера
Выражение пути Include должно ссылаться на свойство навигации, определенное для типа. Используйте пунктирные пути для ссылочных навигационных свойств и оператор Select для свойств навигации для коллекции.
мнение сильно типизированных
@model IEnumerable<MyProject.Models.Koeretoej>
<div">
@foreach(var item in Model){
<ul>
<li>
<span class="icon">
<img src="@[email protected]"/>
</span>
</li>
<li><span class="text">@item.Name</span></li>
<li><span class="text">@item.Status</span></li>
</ul>
}
</div>
И на мой взгляд, я хочу, чтобы объединить Filepath
и Filename
использовать его для СРК img
«s. Но я не уверен, как это сделать.
Вам не нужно даже в 'Include' потому, что вы с нетерпением Извлечение первое изображение. –
Я пробовал этот код, но не работал для меня. Возможно, я не очень хорошо объяснил. Я отредактировал вопрос, поэтому теперь он содержит больше кода. –
Я обновил свой ответ соответственно – Andreas