我想从我的数据库中加载符合条件> 2的产品的所有照片。

当PCProductID在PCPhotoID中有一条记录时,我想要添加单个图像,但是当它自己重复时,例如PCProductID == 2有两条记录PCPhotoID,我希望它们加载在滑块中。
我不知道怎么写正确的条件。
<div class="row images">
@foreach (var item in Model.PCPhotos)
{
if (Model.PCProduct.PCProductID == item.PCProductID)
{
<img src="~/Content/PCProduct/@item.IconFileName" />
}
}
</div>ProductViewModel:
public IEnumerable<PCPhoto> PCPhotos { get; set; }
public PCProduct PCProduct { get; set; }StoreController:
public ActionResult PCDetails(int id)
{
var pcproduct = db.PCProducts.Find(id);
var producer = db.Producers.ToList();
var networkcard = db.NetworkCards.ToList();
var soundcard = db.SoundCards.ToList();
var computercase = db.ComputerCases.ToList();
var ram = db.RAMs.ToList();
var graphic = db.Graphics.ToList();
var cpu = db.CPUs.ToList();
var motherboard = db.Motherboards.ToList();
var pcphotos = db.PCPhotos.ToList();
var vm = new ProductViewModel
{
PCProduct = pcproduct,
Producer = producer,
NetworkCards = networkcard,
SoundCards = soundcard,
ComputerCases = computercase,
RAMs = ram,
Graphics = graphic,
CPUs = cpu,
Motherboards = motherboard,
PCPhotos = pcphotos
};
return View(vm);
}PCProduct类:
public class PCProduct
{
public int PCProductID { get; set; }
public ICollection<PCPhoto> PCPhotos { get; set; }
// More stuff and fks added
}PCPhoto类:
public class PCPhoto
{
public int PCPhotoID { get; set; }
public int PCProductID { get; set; }
public string IconFileName { get; set; }
public PCProduct PCProduct { get; set; }
}编辑:我需要在我的do产品视图上更多来自其他表的数据,比如有关CPU、主板等的信息。有什么方法可以这样做吗?
PS.您的代码正常工作,但是pcphotos.count() == 1被跳过,只有第二次连续工作,但是也显示了所有的照片,甚至是第一个图像。
发布于 2018-01-25 15:56:30
查看您的模型和数据库,很明显每个Product都可以与一个或多个Photos相关联,并且这是通过实体类来表示的。
视图模型中的Product将包含相关的照片-实体框架将根据您的外键为您填充它们。如果有多张照片,请使用滑块。如果没有,就不要:
查看:
@Model ProductViewModel
<div class="productid">Product ID: @Model.PCProduct.PcProductID</div>
<div class="row images">
@if (Model.PCProduct.PCPhotos.Count() == 1) {
<img src="~/Content/PCProduct/@Model.PCProduct.PCPhotos.ElementAt(0).IconFileName" />
}
else if (Model.PCProduct.PCPhotos.Count() > 1)
{
//here you create the HTML for the slider. You may need a foreach to loop through Model.PCPhotos and make some HTML or JSON for each one, depends on what the slider plugin requires.
}
</div>您所使用的视图模型有两个单独的列表,它将照片与产品完全断开关联,因此很难/不可能在数据项之间建立所需的连接。相反,您可以利用已经对您可用的结构,如本例所示。对于此任务,您根本不需要单独的ViewModel对象。
https://stackoverflow.com/questions/48445807
复制相似问题